首页 > 解决方案 > 在 PHP 中使用干净的 url 重定向 url

问题描述

我正在构建一个简单的电子商务应用程序,我想让我的网址“干净”。好的,我已经做了一些事情来到达那里,但我现在很困惑:/

我目前的情况:
www.example.com/products
在这个页面上,我有一些产品的 ID、标题和所有其他显示的东西

当我点击产品的标题时,我提交了一个带有 ID 和名称的表单,我'd like to goto
www.example.com/detail/name_of_product In detail.php <form name="prodDetail" action="detail" method="post">
我通过 $_POST 获得产品 ID,因为它是通过提交表单进入的。然后我可以根据需要做所有的事情来显示产品详细信息。
到目前为止,一切都很好。
但是如果我这样做,<form name="prodDetail" action="detail/'.$prodName.'"method="post">我只得到一个空白页面:/ 如果我用'替换它,请注意' / ' ' 然后它可以工作,但我有一个丑陋的 url 和一个?在里面:/

所以我认为我的 htaccess 文件不允许我这样做:/

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?action=$1&1id=$2&2id=3$ [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/?$          index.php?action=$1&2id=$2 [L,QSA]
RewriteRule ^([^/]+)/?$                  index.php?action=$1 [L,QSA]

我正在使用“switcher.php”这个文件捕获“动作”并使用函数将我切换到正确的页面。我在我的 index.php 中调用这个脚本。

$action = isset($_GET['action']) ? $_GET['action'] : "default";

switch ($action){
  case 'product';
    showproduct();
    break;
  default:
    defaultpage() //home.php is default
}

因此,如果我提交一个“详细信息”表单,切换器会将我指向 detail.php。

对不起我的英语不好
希望有人可以帮助我:)

标签: php.htaccessurlurl-shortenerclean-urls

解决方案


推荐阅读