mod_rewrite匹配查询字符串的一部分,无论它出现在何处

时间:2013-12-20 16:56:52

标签: php regex apache .htaccess mod-rewrite

在将客户端移动到SEO友好URL时,我添加了许多重写规则,只要查询字符串完全匹配,就可以很好地工作。这是一个:

RewriteCond   %{REQUEST_URI}    ^/index.php/site/show$
RewriteCond   %{QUERY_STRING}   ^activeshow=32118028$
RewriteRule   ^(.*)$ http://foo.com/shows/someshow/   [R=301,L]

我发现添加到查询字符串的新闻稿等不匹配。如何在查询字符串中的任何位置重新表达此匹配以匹配activeshow = 32118028?

1 个答案:

答案 0 :(得分:0)

尝试:

RewriteCond   %{REQUEST_URI}    ^/index.php/site/show$
RewriteCond   %{QUERY_STRING}   (^|&)activeshow=32118028(&|$)
RewriteRule   ^(.*)$ http://foo.com/shows/someshow/   [R=301,L]