.htaccess强制HTTPS

时间:2012-06-14 20:07:33

标签: .htaccess redirect https

我正在尝试在域上强制使用HTTPS。必须使用按域名而不是端口号工作的方法(由于主机结构/设置)来完成。

我最接近的尝试是:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.com$
RewriteRule ^.*$ https://www.mydomain.com/$1 [R=301,L]

在地址栏中键入“mydomain.com”时会自动重定向到“https://mydomain.com”,但是当我输入“www.mydomain.com”时它不起作用。我认为这是一个语法问题,因为我对htaccess很新,并且花了大约4个小时尝试从其他代码创建解决方案。

指针的任何机会?


使设置更容易理解。

/public_html/ - 此文件夹中的所有文件都与www.mydomain.com相关 /public_html/subfolder - 这些文件夹包含与mydomain.com相关的文件 /public_html/subdomain - 这些文件夹包含与www.myotherdomain.com相关的文件
我的其他域是mydomain.com的子域,可以在主机的cpanel中列出。
例如:subdomain.mydomain.comwww.myotherdomain.com相同。

希望能够清除结构。

1 个答案:

答案 0 :(得分:3)

只要向确切的域mydomain.com发出请求(这就是RewriteCond正在测试的内容),就会发生重定向。它不适用于任何其他域,也不会检测HTTPS。请改用:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L]