我有一个.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]
我想错在哪里,谢谢。
答案 0 :(得分:1)
问题在于:
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
^(.*)$
匹配所有内容,因此即使将用户重定向到https也会保持匹配,因此无限循环。
因此,您需要使此规则仅在需要时匹配,以下RewriteCond
应该使规则仅匹配,而https关闭,这应该停止无限循环:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [R,L]