.htaccess循环重定向错误

时间:2011-09-23 07:30:02

标签: .htaccess

我有一个.htaccess,它应该强制使用SSL进行连接。它在localhost上工作得很好,当我把它上线时,我有各种各样的错误。 这是我的代码。

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]

我想错在哪里,谢谢。

1 个答案:

答案 0 :(得分:1)

问题在于:

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

^(.*)$匹配所有内容,因此即使将用户重定向到https也会保持匹配,因此无限循环。

因此,您需要使此规则仅在需要时匹配,以下RewriteCond应该使规则仅匹配,而https关闭,这应该停止无限循环:

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