Php完全兼容的自链接- htaccess



我想要完成的是使我的url与各种额外参数兼容。

必须能够处理n个斜杠。因此,我的htaccess获取127.0.0.1/store/之后的所有内容并将重定向。php作为id发送给它。

as in
http://127.0.0.1/store/category/cars/show/1/page/2
or
http://127.0.0.1/store/category/cars/color/red/price/min/100
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^(.*)$ http://127.0.0.1/store$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ redirect.php?id=$1 [QSA,L]

在我的redirect.php中,我使用斜杠来获取脚本名称和它的参数

if($_GET['id']){
   $param = explode('/', $_GET['id']);
   $template = $param[0];
   // header redirect -> go to category.php
}

得到

Array
(
    [0] => category
    [1] => electronics-computers
    [2] => show
    [3] => 1
    [4] => page
    [5] => 2
)

目前还好,然后我尝试重定向到文件这里是带参数的category。php但由于htaccess控制流量,它变成了无限重定向

我想我应该添加一些例外的htaccess不干扰请求来自重定向。php但我不能使它工作

如果有更好的方法,请告诉我

然后尝试重定向到该文件在本例中是category。php

问题就在这里,你不应该在这个阶段重定向。重定向包括将重定向响应发送回客户端,然后客户端向服务器发出第二个/新的请求(这会导致重定向循环)。

如果有更好的方法,请告诉我

您需要路由请求。由于您知道所需的文件是contact.php(在本例中),因此在服务器端读取该文件,传递所有必要的参数,并将其以相同的响应发送回客户机。

最新更新