我需要匹配URL格式,并且需要将传入请求重定向到不同页面的URL匹配。
例如
http://www.domain.com/path1/path2/ wrong-url -1 / ?var1 = val1
http://www.domain.com/path1/path2/ another-wrong-url -1 / ?var1 = val1
http://www.domain.com/path1/path2/ third-wrong-url -1 / ?var1 = val1
http://www.domain.com/path1/path2/ 第四个错误网址 -1 / ?var1 = val1
请参阅高亮URL匹配。它始终具有 -1作为url字符串。。这需要重定向到一个静态页面。
其他一些网址始终具有 var1 作为URL查询字符串参数。因此,如果URL具有 var1 作为查询字符串,那么这些URL需要重定向到另一个静态页面。
所以我尝试了这个,但没有奏效。请帮我处理这个重定向脚本
RewriteEngine on
RewriteRule ^(path1/path2/[^-1]*)$ http://www.domain.com/target-page [L,R=301]
答案 0 :(得分:1)
1。以-1/
结尾的网址规则:
RewriteRule ^path1/path2/([^/]+)-1/$ http://www.domain.com/target-page [L,R=301]
2。查询字符串中包含var1=
参数的规则:
RewriteCond %{QUERY_STRING} (^|&)var1=([^&]*)(&|$)
RewriteRule .* http://www.domain.com/another-target-page [L,R=301]
注意:强>
使用这些规则,现有的查询字符串也将被传递到新的URL(例如/path1/path2/wrong-url-1/?say=meow
将成为http://www.domain.com/target-page?say=meow
)。要删除它,请在目标网址的末尾添加?
(例如http://www.domain.com/another-target-page? [L,R=301]