2011-09-23 111 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