我正在运行一个接受对我的域的请求的 Apache HTTP 服务器。让我们称之为 www.mydomain.com。我有几个在此域下运行的站点,并且我为每个站点设置了虚拟主机,这些站点根据他们使用的 URL 转发用户。例如 a.mydomain.com、b.mydomain.com 等。考虑到有 100 多个虚拟主机,我知道这可能不是实现此目标的最佳方式,但这是我继承的。 . 简而言之.. 它有效。现在谈谈我的问题。
我最近的任务是关闭在该域下运行的大多数站点。被关闭的站点已被重定向到我的新域 (www.mynewdomain.com) 上的一个页面。我所做的是改变了每个虚拟主机,如下所示:
<VirtualHost *:80>
ServerName a.mydomain.com
RewriteEngine On
RewriteRule ^/$ /SiteA [PT]
</VirtualHost>
对此:
<VirtualHost *:80>
ServerName a.mydomain.com
Redirect permanent / http://www.mynewdomain.com/replacement
</VirtualHost>
所以现在我有一个包含 100 个主机的列表,它们都重定向到同一个地方。我需要知道的是,是否存在一种方法可以告诉系统将 *.mydomain.com 上的所有站点重定向到我的新页面,但某些站点除外。所以像这样的一些条目:
<VirtualHost *:80>
ServerName *.mydomain.com
Redirect permanent / http://www.mynewdomain.com/replacement
</VirtualHost>
<VirtualHost *:80>
ServerName h.mydomain.com
RewriteEngine On
RewriteRule ^/$ /SiteH [PT]
</VirtualHost>
<VirtualHost *:80>
ServerName v.mydomain.com
RewriteEngine On
RewriteRule ^/$ /SiteV [PT]
</VirtualHost>
这意味着您看到的每个 URL 都将转到“ http://www.mynewdomain.com/replacement”,“h.mydomain.com ”和“v.mydomain.com”除外。“h”和“v”的虚拟主机必须仍然完好无损,因为我为每个必须继续工作的 RewriteRules 设置了 RewriteRules(在我的示例中没有看到其他重写规则)。
提前感谢您的帮助!