如何使用异常执行Apache HTTP服务器虚拟主机覆盖重定向

时间:2013-09-11 21:26:35

标签: apache redirect mod-rewrite

我正在运行一个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(我的示例中没有看到额外的重写)。

提前感谢您的帮助!

0 个答案:

没有答案