我有一个看起来像这样的VirtualHost:
ServerName domain1.com ServerAlias www.domain1.com domain2.com www.domain2.com
当有人访问www.domain1.com/test时,应将其重定向到:
domain1.com/test
当有人访问www.domain2.com/test时,应将其重定向到:
domain2.com/test
我目前的RewriteRules缺乏.
编辑:这是我到目前为止所得到的:
# Rewrite www to non-www RewriteEngine on RewriteCond %{HTTP_HOST} www\.%{HTTP_HOST}$ [NC] RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [L,R=301]
显然,这会产生无限重定向循环.
无需重写.
ServerName domain1.com ServerAlias domain2.com ... real vhost settings ... ServerName www.domain1.com Redirect permanent / http://domain1.com/ ServerName www.domain2.com Redirect permanent / http://domain2.com/
你的RewriteCond有点不稳定.我很惊讶它做了什么,因为它似乎试图匹配主机www.domain1.com
与模式www\.www.domain1.com
.这些指令对我有用:
# Redirect www to non-www RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ http://%1$1 [L,R=301]