0

我有许多页面具有以下类型的路径和子域:

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/

我的程序员试过了,但他说他做不到。这种类型的子域通配符重定向是不可能的吗?

4

1 回答 1

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]
于 2013-11-07T08:34:01.183 回答