我正在尝试在域上强制使用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.com
与www.myotherdomain.com
相同。
希望能够清除结构。
答案 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]