2014-01-21 66 views
1

我有以下.htaccess文件:影響重定向停止Apache的mod_rewrite規則

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

有你的重寫規則爲:

RewriteEngine On 
RewriteBase /test/ 

RewriteCond %{REQUEST_URI} !/(example-1|index\.php) [NC] 
RewriteRule ^(.*)$ index.php?_url=$1 [QSA,L] 

但一般你不應該mod_rewrite規則混合mod_alias規則。您的代碼可以改寫爲:

RewriteEngine On 
RewriteBase /test/ 

RewriteCond %{THE_REQUEST} /example-1[\s?/] [NC] 
RewriteRule^example-2 [R=301,L] 

RewriteRule ^(.*)$ index.php?_url=$1 [QSA,L] 
+0

謝謝。唯一的問題是可能會有很多重定向,我有點希望在mod_rewrite執行任何操作之前,可能有辦法讓Apache處理重定向。保存任何重複等。 –

+0

查看我更新的答案以獲取更多詳細信息。 – anubhava

+0

謝謝,你是對的,我應該只是使用mod_rewrite的一切。 –