伙计们我正在尝试使用.htaccess更改我的网址,但遇到一个问题 我的网址看起来像这样
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]
它的工作原理我从重写网址中删除“web /”,但后来网址看起来像
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]
答案 0 :(得分:0)
这是由两个疏忽引起的。第一条规则不添加" web"到网址。第二条规则在^
和正则表达式的其余部分之间包含一个流氓空间,导致它返回错误。
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]
请记住在测试之前清除浏览器缓存,因为您的浏览器可能已经缓存了旧的,错误的重定向。