2015-10-07 108 views
1

請,你能給我一個建議,爲什麼這個.htaccess文件導致重定向循環?htaccess RewriteRule導致循環

我有這個網址: www.akomin.cz/www.akomin.cz/smth/ ,我想它有重定向: www.akomin.cz/nedostupny/

但Safari給我一個錯誤,當試圖打開www.akomin.cz/nedostupny/有許多重定向。

RewriteEngine on 

RewriteRule !^/nedostupny/ /nedostupny/ [L,R=302] 


RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !\.(php|html?|jpg|gif)$ 
RewriteRule ^(.*)([^/])$ http://%{HTTP_HOST}/$1$2/ [L,R=301] 

RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L] 
+0

與php無關 – Epodax

回答

0

您的第一條規則改成這樣:

RewriteCond %{THE_REQUEST} !/nedostupny/ [NC] 
RewriteRule^/nedostupny/ [L,R=302] 

您需要使用%{THE_REQUEST},因爲你的最後一個規則改變REQUEST_URI/index.php因此導致第一條規則再次觸發。 THE_REQUEST變量表示Apache從您的瀏覽器接收到的原始請求,並且它在執行一些重寫規則後不會被覆蓋。

確保在清除瀏覽器緩存後對其進行測試。

+1

謝謝,它的工作原理。 –