在htaccess中强制https给出:页面没有正确重定向

时间:2017-10-24 18:04:18

标签: php .htaccess

我有一个数据库驱动的网站,需要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]

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这样一来,如果您的网站使用的端口不是80(这种情况极不可能,但值得一试),或者有什么东西迫使您的网址重定向到example.com而不是www.example.com,那么它就不会受到影响。