多个 RewriteCond 不起作用

多个 RewriteCond 不起作用

我在 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]

相关内容