防止重定向特定URL

时间:2016-08-17 03:29:51

标签: .htaccess

如果网址包含特定字词,我会重定向。

RewriteRule ^forum(/.*)?$ /homepage.html?no=%{QUERY_STRING} [R=301,L,NE,NC]

是否可以避免重定向具有上述特定字词的特定网址?

E.g。 以下获取重定向

http://www.exsample.com/forum/contactus.html?ypin9001234

http://www.exsample.com/homepage.html?no=ypin9001234

我需要的是继续上述重定向,但要避免仅针对以下网址重定向。

http://www.exsample.com/forum/members/gold/gold.html?ypin9001234

注意:单词gold仅由此网址使用。

2 个答案:

答案 0 :(得分:2)

您应该使用RewriteCond THE_REQUEST 匹配完整网址和查询字符串:

RewriteCond %{THE_REQUEST} !/forum/members/gold/gold\.html\?ypin9001234 [NC]
RewriteRule ^forum(/.*)?$ /homepage.html?no=%{QUERY_STRING} [R=301,L,NE,NC]

答案 1 :(得分:1)

您可以在重写规则之前添加重写条件,例如:

RewriteCond %{REQUEST_URI} !^.*gold.*$
RewriteRule ^forum(/.*)?$ /homepage.html?no=%{QUERY_STRING} [R=301,L,NE,NC]

这将阻止任何包含单词gold的url被重写。如果您需要更具体,只需使条件更精确:

RewriteCond %{REQUEST_URI} !^forum/members/gold.*$
RewriteRule ^forum(/.*)?$ /homepage.html?no=%{QUERY_STRING} [R=301,L,NE,NC]

...诸如此类