我有很多页面包含以下类型的路径和子域:
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/
我的程序员已经尝试但是他说他不能这样做。是否有可能出现这种类型的子域通配符重定向?
答案 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]