【问题标题】:Incomplete htaccess for subdomain子域的不完整 htaccess
【发布时间】:2018-10-20 21:14:49
【问题描述】:

我不确定它是否可以完成,我看起来高低。可能我只是没有正确构建搜索查询来产生我需要的结果。

我在一个主机上有 2 个具有不同内容的域(一个添加到另一个域上)。当我添加第二个域时,所有这 3 个场景都会解决:

(1) domain2.domain1.com
(2) domain1.com/domain2/
(3) www.domain2.domain1.com
(4) www.domain1.com/domain2/
(5) domain2.com

我只想显示https://domain1.comhttps://domain2.com 的内容-但是- https://domain1.com/domain2/https://www.domain1.com/domain2/ 应该解析为 https://domain2.com

对 .htaccess 的以下更改处理了场景 (1) 和 (3),但我不知道如何处理场景 (2) 和 (4):

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

任何帮助将不胜感激。

【问题讨论】:

  • 你好,Diamich。欢迎来到 Stack Overflow 社区。我已经为您的问题提供了解决方案。如果有任何问题,请发表评论,或者如果可以解决您的问题,请投票并接受答案,以便其他 SO 用户可以从中受益

标签: .htaccess


【解决方案1】:

您需要创建 四个 虚拟主机,,同样。

对于 domain1.com,您需要创建一个将 http 重定向到 https 的虚拟主机和另一个负责 https 连接 的虚拟主机强>。 domain2.com

也是如此

ServerNameServerAlias 指令将帮助您解决问题(基于名称的虚拟主机)。

更多内容可以在link阅读

现在您的文件将包含以下规则

<VirtualHost 192.168.23.34:80>
    ServerName domain1.com
    ServerAlias www.domain1.com

    Redirect permanent / https://domain1.com/

</VirtualHost>

<VirtualHost 192.168.23.34:80>
    ServerName domain2.com
    ServerAlias www.domain2.com

    Redirect permanent / https://domain2.com/

</VirtualHost>

<VirtualHost 192.168.23.34:443>
    ServerName domain1.com
    ServerAlias www.domain1.com

    RewriteEngine on
    RewriteCond %{REQUEST_URI} ^/domain2
    RewriteRule (.*) https://domain2.com/ [L,R=301,NC]

    // ssl certificate setting for the same

</VirtualHost>

<VirtualHost 192.168.23.34:443>
    ServerName domain2.com
    ServerAlias www.domain2.com

    RewriteEngine on
    RewriteCond %{REQUEST_URI} ^/domain1
    RewriteRule (.*) https://domain1.com/ [L,R=301,NC]

    // ssl certificate setting for the same

</VirtualHost>

请务必重启 apache。

在这条规则之后

  1. www.domain1.com 将重定向到https://domain1.com
  2. domain1.com 将重定向到https://domain1.com
  3. www.domain2.com 将重定向到https://domain2.com
  4. domain2.com 将重定向到https://domain2.com
  5. https://domain1.com/domain2 将重定向到 https://domain2.com
  6. https://domain2.com/domain1 将重定向到 https://domain1.com
  7. https://www.domain1.com/domain2 将重定向到 https://domain2.com
  8. https://www.domain2.com/domain1 将重定向到 https://domain1.com

【讨论】:

  • 感谢您的建议。如果我有一个虚拟服务器,我可能会弄清楚如何做所有这些,但我选择了共享主机,因为我真的没有资格保证服务器的安全。由于我的网站将有电子商务,我不想冒险。鉴于我在共享主机上,有没有其他方法可以防止搜索引擎抓取这些区域并惩罚我重复的内容。他们并不总是遵守 robots.txt
猜你喜欢
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 2011-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多