我有以下.htaccess文件:
Redirect 301 /test/example-1 /test/example-2
RewriteEngine On
RewriteBase /test/
RewriteRule ^(.*)$ index.php?_url=$1 [QSA,L]
我希望重定向在没有mod_rewrite干扰的情况下发生,但是当您点击/test/example-1
时,它会重定向到/test/example-2?_url=example-1
。
有没有办法阻止重写规则中的查询参数附加到重定向URL?感谢。
答案 0 :(得分:0)
将您的重写规则设为:
RewriteEngine On
RewriteBase /test/
RewriteCond %{REQUEST_URI} !/(example-1|index\.php) [NC]
RewriteRule ^(.*)$ index.php?_url=$1 [QSA,L]
但一般情况下,您不应将mod_alias
规则与mod_rewrite
规则混合使用。您的代码可以重写为:
RewriteEngine On
RewriteBase /test/
RewriteCond %{THE_REQUEST} /example-1[\s?/] [NC]
RewriteRule ^ example-2 [R=301,L]
RewriteRule ^(.*)$ index.php?_url=$1 [QSA,L]