我有一个数据库驱动的网站,需要htaccess中的一些条目。要强制https,我添加了第2行和第3行,但它会出错。
我以不同的顺序尝试了2行,但这给出了500错误。作为第2行和第3行,我得到:' Firefox检测到服务器正在以永远无法完成的方式重定向此地址的请求
.htaccess的内容是:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
RewriteRule ^robots.txt robots.php [QSA,L]
RewriteCond %{REQUEST_URI} !\.(twig)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} !^eid=(.*)
RewriteRule ^(.*) /index.php?rewrite=$1 [QSA,L]
RewriteRule ^includes/(.*) / [R=301,QSA,L]
我做错了什么?
答案 0 :(得分:1)
您可以尝试以下方法:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
这样一来,如果您的网站使用的端口不是80(这种情况极不可能,但值得一试),或者有什么东西迫使您的网址重定向到example.com而不是www.example.com,那么它就不会受到影响。