将子页面中的页面重定向到主域上的相同完整路径

时间:2013-11-07 08:28:38

标签: apache .htaccess redirect

我有很多页面包含以下类型的路径和子域:

place1.maindomain.com/travel/place1/go/
place2.maindomain.com/travel/place2/go/

place1.maindomain.com/travel/place1/widgets/
place2.maindomain.com/travel/place2/widgets/

我想使用通配符自动将所有这些域重定向到www而不是子域,因此它们将显示如下:

www.maindomain.com/travel/place1/go/
www.maindomain.com/travel/place2/go/

www.maindomain.com/travel/place1/widgets/
www.maindomain.com/travel/place2/widgets/

我的程序员已经尝试但是他说他不能这样做。是否有可能出现这种类型的子域通配符重定向?

1 个答案:

答案 0 :(得分:0)

重定向很简单。什么阻止你做以下事情:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?maindomain\.com$ [NC]
RewriteRule ^ http://www.maindomain.com%{REQUEST_URI} [L,R=301]

如果你的意思是“place1”部分必须与路径中的“place1”部分匹配,那么你可以这样做:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?maindomain\.com$ [NC]
RewriteCond %{REQUEST_URI} ^/[^/]+/([^/]+)/
RewriteCond %{HTTP_HOST}|%1 ^([^.]+)\.maindomain\.com|\1$
RewriteRule ^ http://www.maindomain.com%{REQUEST_URI} [L,R=301]