.htaccess强制HTTPS

.htaccess强制HTTPS,.htaccess,redirect,https,.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”时,它就

我试图在域上强制使用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\u html/
-此文件夹中的所有文件都与
www.mydomain.com

/public\u html/子文件夹
-这些文件夹还包含与
mydomain.com

相关的文件
/public\u html/subdomain
-这些文件夹包含与
www.myotherdomain.com


我的其他域是
mydomain.com
的子域,用于在主机上的cpanel中列出
例如:
subdomain.mydomain.com
www.myotherdomain.com
相同。


希望这能清除结构。

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

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

我正在使用Bluehost作为我的主机。他们的设置方法是将主站点(我正在尝试使用https的站点)列在“public_html”下。我的所有其他网站都在“public_html”的子文件夹中,并且受.htaccess文件的影响,导致所有域现在重定向到“mydomain.com”@Daniel我明白了。我会更新我的答案。您的其他站点是否都是mydomain的子域,或者它们都是不同的域?我为每个站点都有一个域名,但要使它们位于cpanel上,必须为它们分配子域。例如:www.mydomain.com和subdomains.mydomain.com(也是www.myotherdomains.com)@Daniel,您只想在
www.mydomain.com
mydomain.com
上强制使用HTTPS,对吗?正确。我用版面更新了原来的帖子,把它弄清楚了一点。干杯