自动重定向到SSL

时间:2015-07-30 23:05:20

标签: apache .htaccess

我的服务器正在运行Apache服务器。到目前为止,一切都还可以。但是,如果我试图强制SSL通过.htaccess,Chrome / Firefox告诉我:“这个网站重定向循环”或类似的东西。

我正在使用此处找到的代码@ SO:

    RewriteEngine on 
First rewrite any request to the wrong domain to use the correct one (here www.)
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Now, rewrite to HTTPS:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}

Chrome说:ERR_TOO_MANY_REDIRECTS

如何解决?

2 个答案:

答案 0 :(得分:0)

我通过将http(而不是https)服务器设置到其自己的站点目录来实现此结果,该目录包含以下index.php:

<?php header("Location: https://".$_SERVER["SERVER_NAME"]); ?>

我意识到这并没有使用apache的重写功能(我实际上已经在使用重写来做其他事情而且这样做会让事情变得复杂),显然它只会在你有&#39时使用;还运行PHP,但这是一个相当简单的解决方案。希望它有所帮助!

答案 1 :(得分:0)

您的SSL是否覆盖www.youdomain.com或只是yourdomain.com?

如果您使用www。你可以在.htaccess中试试这个

  

上的RewriteCond%{HTTPS}      

RewriteCond%{HTTP_HOST} ^ www。(。*)$ [NC]

     

RewriteRule ^(。*)$ https://%1/ $ 1 [R = 301,L]