将用户从以前的子域redirect到新的URL

我最近上了一个新的网站,其中一个部门把用户引导到一个虚拟域名。

例如,www.ia.domain.com将自己伪装成自己的网站,这真的是domain.com/ia

我想要做的是将所有访问www.ia.domain.com的用户redirect到domain.com/ia,

以及www.ia.domain.com/faculty/ => domain.com/ia/faculty/

这是在一个新的框,所以它没有原来的configuration。

该网站正在使用Linux(rhel5)在Apache上运行。

我不熟悉mod_rewrite。 我做了301redirect,但我无法redirect一个虚拟子域的方式。

如何不使用mod_rewrite,而是使用redirect语句。

#Virtual Host for IA sub web <VirtualHost *:80> ServerName www.ia.domain.com ServerAlias <other domain names they want to associate with this directory; ex: ia.domain.com> Redirect permanent / http://www.domain.com/ia_new_web_location/ </VirtualHost> 

您需要为www.ia.domain.com设置一个基于名称的虚拟主机

在虚拟主机configuration块中,mod_rewrite的以下规则应该做的诀窍:

 RewriteRule ^/(.*) http://domain.com/ia/$1 [R] 

下面是我期望的工作,在你的Apacheconfiguration(/etc/httpd/conf.d或/etc/apache2/conf.d,一个名为domain.com.conf的文件)中:

当然,这可能需要根据您的其他Apacheconfiguration进行调整。

 NameVirtualHost *:80 <VirtualHost *:80> ServerName www.ia.example.com ServerAlias ia.exmaple.com Redirect permanent /(.*) http://www.example.com/ia/$1 </VirtualHost> <VirtualHost *:80> # Your normal website configurations here </VirtualHost> 

肖恩

如果你想要一个透明的redirect,试试这个:

 rewriteCond %{HTTP_HOST} ^www.ia.domain.com rewriteRule ^/faculty(.*) domain.com/ia/faculty$1 [P] 

Apache服务器使用代理模块(您需要启用代理模块)进行透明redirect(不需要301或302 http代码)