【问题标题】:Subdomains Display The Wrong Content Using HTTPS子域使用 HTTPS 显示错误的内容
【发布时间】:2013-10-10 12:34:38
【问题描述】:

我在我的主域和一些子域(应用程序、仪表板、支持、培训)上使用通配符 SSL。我面临的问题是,当我尝试通过 HTTPS 访问子域时,它显示了根域的索引/主页,但是当通过 HTTP 访问子域时,它显示了正确的页面。我想知道我需要在 .htaccess 文件中放入哪些信息来创建子域:

  1. 自动使用 HTTPS。
  2. 使用 HTTPS 时在该子域上显示正确的内容。

子域目前没有 .htaccess 文件,因为我现在不知道应该放什么。

以下是 HTTP 子域的示例:http://goo.gl/Mcg66l
以下是 HTTPS 子域的示例:http://goo.gl/Aw9yl6
这是主域:http://goo.gl/TfLjuy

主域正在做我希望它做的事情(www 到非 www 和自动 https 重定向),但子域没有做我希望他们做的事情,如上所述。

这是主域上的 .htaccess 文件:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]

最后,我在 HostGator 服务的经销商帐户下使用 cPanel。

感谢您查看此问题!

【问题讨论】:

  • http 和 https VirtualHost 条目是否都指向该域的相同 DOCUMENT_ROOT?
  • 我不知道如何检查。
  • 您需要检查 Apache 配置吗?
  • 对不起,您知道如何在 cPanel/WHM 中找到它吗?
  • 您可以创建一个内容为<?php phpinfo(); ?> 的php 文件,然后使用http 和https 在浏览器中执行该文件以查看DOCUMENT_ROOT 的值是多少。

标签: apache .htaccess mod-rewrite ssl https


【解决方案1】:

我也遇到了同样的问题,也是使用 HostGator 帐户。我找到了另一个问题的答案you can find here.

他们通过对主域应用 HTTPS 来解决这个问题,在子域上强制使用 HTTP,然后作为奖励删除所有 WWW

# for main domain
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://domain.com%{REQUEST_URI} [R=301,L,NE]

# for sub domain
RewriteCond %{HTTP_HOST} ^(www\.)?subdomain\.domain\.com$ [NC]
RewriteCond %{HTTPS} on [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ http://subdomain.domain.com%{REQUEST_URI} [R=301,L,NE]

【讨论】:

    猜你喜欢
    • 2012-11-24
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多