伙计们,我试图用.htaccess修改我的url,但是有一个问题我的URL看起来是这样的
www.example.com/web-search.php?q=car&limit=15我想把它变成那样
www.example.com/web/cars/15但没有成功,我不明白问题,请帮帮我。谢谢这是我的.htaccess代码
RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /web-search\.php\?q=(.*)\&limit=(.*?)\ HTTP
RewriteRule ^ /%2/%3? [R=301,L]
RewriteRule ^ web/([^/]*)/([^/]*)$ /web-search.php?q=$1&limit=$2 [L]我从重写的url中删除了"web/“,但是url看起来像
www.example.com/cars/15 我不想添加web/也不想。提前感谢
更新1:
这导致了上面提到的重写规则的问题。
RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /search\.php\?q=(.*)\&limit=(.*)\&siz=(.*?)\ HTTP
RewriteRule ^ /%2/%3/%4? [R=301,L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /search.php?q=$1&limit=$2&siz=$3 [L]发布于 2014-05-29 07:11:49
这是由两个疏忽引起的。第一条规则没有将"web“添加到url中。第二个规则在^和regex的其余部分之间包含一个流氓空间,导致它返回一个错误。
RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /web-search\.php\?q=(.*)\&limit=(.*?)\ HTTP
RewriteRule ^ /web/%2/%3? [R=301,L]
RewriteRule ^web/([^/]*)/([^/]*)$ /web-search.php?q=$1&limit=$2 [L]在测试之前,请记住清除浏览器缓存,因为您的浏览器可能缓存了旧的、错误的、重定向的。
https://stackoverflow.com/questions/23927446
复制相似问题