从RewriteRule返回引用中删除字符串

时间:2011-05-23 20:47:19

标签: php apache mod-rewrite

我已经创建了一个apache rewriterule的问题。代码是

    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteCond %{REQUEST_URI} new$
    RewriteRule ^/json/([a-z0-9]+)/([a-z0-9\/]+)$ /json.php?api=$1&qs=$2&refresh=true [NC,L]
    RewriteRule ^/json/([a-z0-9]+)/([a-z0-9\/]+)$ /json.php?api=$1&qs=$2 [NC,L]

第二个后引用“qs”将保留“new”参数,但我想从传递给json.php的查询字符串中删除它。显然,我可以在PHP中使用这个服务器端,但我希望尽可能保持整洁,并且可能在RewriteRule上添加更多参数,Id喜欢从qs param中排除。

有人有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您应该可以通过修改重写规则中的正则表达式来执行此操作,以便“新”包含在组外:

RewriteRule ^/json/([a-z0-9]+)/([a-z0-9\/]+)new$ /json.php?api=$1&qs=$2&refresh=true [NC,L]