我有以下规则正在运作
RewriteRule ^(.+?)/(step)/([0-9]+)/(id)/([0-9]+)/(start)/([0-9]+)/(end)/
([0-9]+)/?$ index.php?url=$1&$2=$3&$4=$5&$6=$7&$8=$9 [NC,L,QSA]
现在我想在字符串末尾添加另一个参数(ansid),所以我按照以下方式添加,但由于某种原因它没有拿起ansid。
RewriteRule ^(.+?)/(step)/([0-9]+)/(id)/([0-9]+)/(start)/([0-9]+)/(end)
/([0-9]+)/(ansid)/([0-9]+)/?$ index.php?url=$1&$2=$3&$4=$5&$6=$7&$8=$9&$10=$11
[NC,L,QSA]
答案 0 :(得分:1)
$10
和$11
因为Apache mod_rewrite manual而无法工作:
RewriteRule反向引用:
这些是$ N形式的反向引用(0 <= N <= 9)。 $ 1到$ 9可以从RewriteRule访问模式的分组部分(括号中),RewriteRule受当前RewriteCond条件集的约束。 $ 0提供对该模式匹配的整个字符串的访问。
您需要重构规则,以便在$9
之前使用反向引用
您的规则可能会被重写为:
RewriteRule ^(.+?)/(step)/([0-9]+)/(id)/([0-9]+)/(start)/([0-9]+)/end/([0-9]+)/ansid/([0-9]+)/?$ index.php?url=$1&$2=$3&$4=$5&$6=$7&end=$8&$ansid=$9 [NC,L,QSA]