4

我正在尝试在域上强制使用 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

希望这可以清除结构。

4

1 回答 1

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]
于 2012-06-14T20:12:26.237 回答