子域的htaccess不完整

时间:2018-10-20 21:14:50

标签: .htaccess

我不确定是否可以做到,而且我看上去高低不平。可能是我没有正确构建搜索查询才能获得所需的结果。

我在一个主机上有2个具有不同内容的域(一个添加到另一个)。当我添加第二个域时,所有这三种情况都将解决:

(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]

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您需要为其创建四个虚拟主机,

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

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

可以在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