Mod重写 - 在没有其他人的情况下转发一些QS args

时间:2015-07-20 12:11:00

标签: .htaccess mod-rewrite redirect

我有以下规则:

#click out to story or provider
RewriteCond %{QUERY_STRING} (?:(?:^|&)target=([^&]*))?(?:(?:^|&)ref=([^&]*))?
RewriteRule ^out/([^\/]+)/(item|source)/(\w{11})$ out.php?cntnt_type=$1&item_or_source=$2&id=$3&target=%1&ref=%2

除此之外,这应该允许并转发两个可选查询字符串参数:targetref

如果我使用包含两者这些参数的网址对此进行测试,则会同时发送。

但是,如果省略了其中一个参数,则不会发送。

如何修改它以允许任何一个param独立,而不是仅两个?

1 个答案:

答案 0 :(得分:1)

你可以使用(没有RewriteCond):

RewriteRule ^out/([^\/]+)/(item|source)/(\w{11})$ out.php?cntnt_type=$1&item_or_source=$2&id=$3 [NC,QSA,L]

[QSA]导致第一个查询字符串被组合而无需测试。