2011-09-23 82 views
0

我有一個應該使用SSL強制連接的.htaccess。它在本地主機上運行良好,當我把它聯機時,我有各種各樣的錯誤。 這是我的代碼。.htaccess循環重定向錯誤

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-zA-Z]*)/?$ goto.php?page=$1 
ErrorDocument 404 PageNotFound 
IndexIgnore * 

RewriteRule ^(.*)$ https://example.com/$1 [R,L] 

我在哪裏失蹤了,請,謝謝。

+0

1)什麼樣錯誤(檢查Apache的error.log); 2)當然你會有重定向循環 - 最後一行就是這樣。你最好解釋這些規則應該做什麼,特別是最後一個。 – LazyOne

回答

1

的問題是在這裏:

RewriteRule ^(.*)$ https://example.com/$1 [R,L] 

^(.*)$匹配一切,所以會保持它重定向用戶到https,這樣無限循環即使匹配。

所以,你需要使這個規則只在需要的時候匹配,folloing RewriteCond應該導致規則只匹配而HTTPS是關閉的,應當停止無限循環:

RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://example.com/$1 [R,L] 
+0

感謝哥們,你是救命的人。 – Cyberomin