我正在运行一个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>
这意味着您看到的每个网址都会转到“http://www.mynewdomain.com/replacement”,“h.mydomain.com”和“v.mydomain.com”除外。 “h”和“v”的虚拟主机必须仍然完整,因为每个必须继续工作的RewriteRules(我的示例中没有看到额外的重写)。
提前感谢您的帮助!