通过匹配url字符串和参数来重定向Htaccess URL

时间:2011-09-05 13:18:59

标签: .htaccess url-rewriting apache2

我需要匹配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]

1 个答案:

答案 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]