在htaccess中强制非SSL只能部分工作

时间:2015-02-02 17:00:01

标签: apache .htaccess redirect ssl

我在我的htaccess文件中试过这个,以强制用户通过SSL访问我的页面被重定向到非SSL版本:

RewriteEngine On RewriteCond %{HTTPS} on RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

当用户访问 www.mydomain.com 的SSL版本,而不是 mydomain.com 的SSL版本时,此功能可用。

我认为这部分是由于我在我的网络托管服务提供商控制面板上激活了从mydomain.com到www.mydomain.com的用户转发。

有谁知道如何兼顾两者?

1 个答案:

答案 0 :(得分:1)

  

如果我想同时实现两者,htaccess文件将如何显示?也就是说,将非www转发给www,以及将非www和www的SSL版本转发给非SSL www?

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTPS} on
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]