从RewriteRule反向引用中删除字符串

问题描述

| 我创建的apache重新编写器有点问题。代码
    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的querystring中删除。显然,我可以在PHP中完成此服务器端的工作,但是我想使其尽可能整洁,并可能在RewriteRule上添加更多要从qs参数中排除的参数。 任何人有任何想法吗?     

解决方法

您应该可以通过修改重写规则中的正则表达式来做到这一点,从而使\“ new \”包含在组之外:
RewriteRule ^/json/([a-z0-9]+)/([a-z0-9\\/]+)new$ /json.php?api=$1&qs=$2&refresh=true [NC,L]