【问题标题】:.htaccess redirect http to https for only some addon domains.htaccess 仅针对某些插件域将 http 重定向到 https
【发布时间】:2014-12-19 15:53:03
【问题描述】:

我的主机帐户上有多个插件域。我想将主域的非 https 重定向到 https,并且只重定向一个附加域。

我遇到的问题是 www.firstaddondomain.com 没有重定向到 https://www.firstaddondomain.com。相反,它似乎根本没有重定向。它停留在 www.firstaddondomain.com。

注意:我不想将所有 http 重定向到 https。我有另一个插件域,我不想重定向到 https。

这是我的 .htaccess 文件的样子:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?maindomain\.com$ [NC]
RewriteRule ^$ https://www.maindomain.com/$1 [R,L]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?firstaddondomain\.com$ [NC]
RewriteRule ^$ https://www.firstaddondomain.com/$1 [R,L]

更新: 谢谢你的回答,阿努巴瓦。我的第一个插件域实际上是一个 .org 域,所以我更新的 .htaccess 文件与您的答案略有不同。

这是我更新的 .htaccess 文件

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?firstaddondomain\.org$ [NC]
RewriteRule ^ https://www.firstaddondomain.org%{REQUEST_URI} [R=302,L,NE]

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?maindomain\.com$ [NC]
RewriteRule ^ https://www.maindomain.com%{REQUEST_URI} [R=302,L,NE]

【问题讨论】:

    标签: .htaccess redirect https addon-domain


    【解决方案1】:
    • 您的正则表达式未捕获$1
    • 两个规则可以合并为一个

    你可以使用:

    RewriteEngine On
    
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(maindomain|firstaddondomain)\.com$ [NC]
    RewriteRule ^ https://www.%1.com%{REQUEST_URI} [R=302,L,NE]
    

    确保此规则是您的第一条规则,并放在两个域的 DocumentRoot/.htaccess 中。

    【讨论】:

    • 感谢您的回答。这对一些人有所帮助,但我仍然遇到麻烦。我更新了上面的帖子。
    • 我不认为我可以...我正在使用 godaddy.com 共享主机。我不相信我可以访问虚拟主机条目。
    • 我今天回来并再次尝试了该网站,并且正确地,我不想重定向到 https 的附加域没有重定向。我不知道为什么它没有立即工作。也许它被缓存了?无论如何,感谢您的帮助!
    • 是的,这可能是缓存问题。很高兴它成功了。
    • 其他人的评论 - 我试图为插件域执行此操作。我把它放在 www 目录中,坏事发生了(重定向到addondomain/addondomain)。阅读此答案时我意识到的关键是将重写规则放入 AddonDomain Document Root htaccess 文件中。那效果要好得多。在进行更改时,我确实必须清除浏览器缓存。
    【解决方案2】:

    可能会根据您的托管条件而有所不同,但是在 Godaddy 共享托管环境中并且没有通配符 SSL,即单域 SSL 证书。这是唯一能够从强制 HTTPS 中排除附加域的配置重定向:

    RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^(www\.)?ADDON_DOMAIN\.com$ [NC] RewriteRule .* - [L]
    # 这是必要的,以确保在导航到附加域后不再应用其他条件#
    RewriteCond %{HTTPS} off
    # 现在您已定义排除项并确定其逻辑独立于所有其他 URI 请求,必须再次重新建立此条件 #
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    【讨论】:

      猜你喜欢
      • 2017-09-07
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      • 2014-08-02
      相关资源
      最近更新 更多