2014-07-16 71 views
0

我得到一個「網頁有一個重定向循環」錯誤在我的Apache重寫規則。Apache重定向循環

我想爲GET請求提供乾淨的URL,因此如果用戶鍵入www.flavor.com/vanilla,服務器運行www.flavor.com/?s=vanilla,但URL只讀www.flavor.com/香草所以我加了這一點:

RewriteRule ^([a-z]+)$ /?s=$1 

這工作得很好,但我也希望有www.flavor.com/?s=vanilla重定向到www.flavor.com/vanilla所以我說這個,這是造成一個循環。

RewriteCond %{QUERY_STRING} ^s=([a-z]+)$ 
#RewriteRule ^(.*)$ /%1? [L,R=301] 

我試着向兩者添加[END]和[L],但沒有幫助。我已經重寫了這200次,但無法弄清楚。

回答

0

至於回答herehere這應該有所幫助:RewriteCond %{ENV:REDIRECT_STATUS} 200

全部文件:

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule ^([a-z]+)$ /?s=$1 
RewriteCond %{QUERY_STRING} ^s=([a-z]+)$ 
RewriteRule ^(.*)$ /%1? [L,R=301] 
+0

我想這一點,但我得到以下錯誤信息:未找到 所請求的網址/例如在此服務器上未找到。 此外,嘗試使用ErrorDocument處理請求時遇到404未找到錯誤。 Apache服務器在mysite.org端口80 –