我在 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]
如果我写的话它会重定向我http://foo.domain.com/register,one.html我只想要http://domain.com/register,one.html或者http://www.domain.com/register,one.html
怎么了?
答案1
在您给出的示例中,您肯定不会被重定向。
但是,您似乎希望这些RewriteCond
指令适用于这两个RewriteRule
指令 - 但事实并非如此。它们仅适用于RewriteRule
紧随其后的指令。
http://foo.domain.com/register,one.html
因此,在你的例子中,不是重定向你-但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]