.htaccess - 子域的不完整 htaccess
问题描述
我不确定它是否可以完成,我看起来高低。我可能只是没有正确构建搜索查询来产生我需要的结果。
我在主机上有 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.com或https://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]
任何帮助将不胜感激。
解决方案
您需要为此创建四个虚拟主机< VirtualHost >。
对于domain1.com,您需要创建一个将http 重定向到 https的虚拟主机和另一个负责https 连接的虚拟主机。同样对于domain2.com
ServerName和ServerAlias指令将帮助您解决问题(基于名称的虚拟主机)。
更多内容可以在链接中阅读
现在您的文件将包含以下规则
<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。
在这条规则之后
- www.domain1.com 将重定向到https://domain1.com
- domain1.com 将重定向到https://domain1.com
- www.domain2.com 将重定向到https://domain2.com
- domain2.com 将重定向到https://domain2.com
- https://domain1.com/domain2将重定向到https://domain2.com
- https://domain2.com/domain1将重定向到https://domain1.com
- https://www.domain1.com/domain2将重定向到https://domain2.com
- https://www.domain2.com/domain1将重定向到https://domain1.com
推荐阅读
- node.js - SSL 在生产中阻止使用 Passport 登录,完全在 localhost 上工作
- javascript - 为什么数据在循环中多次显示?
- angular - 如何设置禁用角度自定义组件
- excel - 必须连续过滤掉大于 100 和小于 -100 的数字并找到最小值的函数
- php - 具有数组中值的动态条件
- record - Ada 记录:检测丢失的字节,提出优化
- mysql - 一对多 SELECT 到具有未知列名的单行
- javascript - nativescript-checkbox 不会显示
- javascript - javascript中keyup和keydown的工作有什么区别?
- c# - 为什么 Filestream 不使用我在 ASP.NET Core 中指定的目录?