停止影响重定向规则的Apache mod_rewrite

时间:2014-01-21 19:53:41

标签: apache .htaccess mod-rewrite redirect

我有以下.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?感谢。

1 个答案:

答案 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]