我有一些这样的htaccess:
RewriteCond %{HTTP_HOST} !^foo RewriteCond %{HTTP_HOST} !^bar RewriteCond %{HTTP_HOST} !^some RewriteRule ^register,(.*)$ /register.html [R=301,L] RewriteRule ^offer,(.*)$ /offer.html [R=301,L]
它redirect我,如果我写http://foo.domain.com/register,one.html我只想在http://domain.com/register,one.html或http://www.domain.com/注册,one.html
哪里不对?
在你给出的例子中,你肯定不会被redirect。
不过,它看起来像你期待的RewriteCond指令适用于两个RewriteRule指令 – 他们不。 它们只适用于紧随其后的RewriteRule 。
所以,在你的例子中, http://foo.domain.com/register,one.html 不会redirect你 – 但http://foo.domain.com/offer,one.html会。
你可能需要的是更多的东西:
RewriteCond %{HTTP_HOST} !^(foo|bar|some) RewriteRule ^register,(.*)$ /register.html [R=301,L] RewriteCond %{HTTP_HOST} !^(foo|bar|some) RewriteRule ^offer,(.*)$ /offer.html [R=301,L]