【问题标题】:Redirect Add On Domain To Use HTTP Not HTTPS重定向添加域以使用 HTTP 而不是 HTTPS
【发布时间】:2014-12-04 22:27:46
【问题描述】:

我刚刚设置的附加域存在问题。

我的主域是站点范围的 SSL,我设置了一个 .htaccess 文件来强制所有 http 请求到 https,这工作正常。

但是,SSL 证书仅适用于主域。

如果我尝试访问 myadondomain.co.uk 或 www.myaddondomain.co.uk 它工作正常。

如果用户在 https 网站(例如任何 google 搜索页面)上删除 google.co.uk 部分并输入 myaddondomain,则会出现问题(因为有人错误地这样做并通过电子邮件通知我) .co.uk 不删除 https 部分的网络浏览器会显示有关潜在黑客试图窃取数据的警告。

在谷歌浏览器中,您可以单击高级并继续,当您这样做时,它会显示来自 mymaindomain.co.uk 的内容,地址栏显示 myaddondomain.co.uk 和划掉的 https。

我已经在这里和整个互联网上阅读了大量帖子,并且如上所述已经设置了我的 .htaccess 文件以将 mymaindomain http 请求重定向到 https,但是对于我的生活,我无法让它发送任何 https myaddondomain 的请求改为 http。

这是我的主要 public_html 文件夹中的 .htaccess 文件...

RewriteEngine On

#Redirect domain and www to HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} =mymaindomain.co.uk [OR]
RewriteCond %{HTTP_HOST} =www.mymaindomain.co.uk
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

#Redirect subdomains to HTTP
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^(.+)\.mymaindomain\.co.uk [NC]
RewriteCond %{HTTP_HOST} !=www.mymaindomain.co.uk
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

RewriteRule ^wooden-shapes/([A-Za-z-]+) /wooden-shapes.php?cat=$1
RewriteRule ^search/([A-Za-z-]+) /search.php?cat=$1

AddDefaultCharset UTF-8

ErrorDocument 404 /error404.php

# Use PHP5 as default
AddHandler application/x-httpd-php5 .php

任何帮助将不胜感激,如果需要,我可以提供真实的网站名称。

【问题讨论】:

    标签: apache .htaccess redirect https


    【解决方案1】:
    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80
    RewriteCond %{HTTP_HOST} ^(www\.)?yourdomain\.com$ [NC]
    RewriteRule ^$ https://www.yourdomain.com/$1 [R,L]
    
    RewriteEngine On
    RewriteCond %{HTTPS} !on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    

    将它放在顶级目录中 .htaccess 文件的最顶部。它对我有用

    【讨论】:

      【解决方案2】:

      从不重复:

      重写引擎开启

      在需要 mod 容器的特定 Apache 配置之外。

      它可能会根据您的托管条件而有所不同,但是在 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]

      【讨论】:

        猜你喜欢
        • 2020-12-28
        • 2019-08-04
        • 2018-06-15
        • 2016-11-15
        • 2020-11-04
        • 1970-01-01
        • 2014-10-07
        • 2021-12-12
        • 2014-09-23
        相关资源
        最近更新 更多