如果网址包含特定字词,我会重定向。
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
仅由此网址使用。
答案 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]
...诸如此类