【问题标题】:.htaccess forcing HTTPS.htaccess 强制 HTTPS
【发布时间】:2012-06-17 22:18:24
【问题描述】:

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

希望这可以清理结构。

【问题讨论】:

    标签: .htaccess redirect https


    【解决方案1】:

    只要向确切的域 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.comsubdomains.mydomain.com(也就是 www.myotherdomains.com
    • @Daniel 你只想在www.mydomain.commydomain.com 上强制使用HTTPS,对吧?
    • 正确。我已经用布局更新了原始帖子,以稍微清除它。干杯。
    猜你喜欢
    • 1970-01-01
    • 2012-02-02
    • 2019-12-17
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多