问题描述
||
似乎在使用mod rewrite时无法使用regex组,例如
results/(.*?)(/(.*?))(/(.*?))(/(.*?))(/(.*?))(/(.*?))(/(.*?))(/(.*?))(/(.*?))(/(.*?))
那会做这样的事情:
results.PHP?a=$1&b=$3&c=$5&d=$7&e=$9&f=$11&g=$13&h=$15&i=$17&j=$19
对于其中带有“ 2”的数字,将在“ 3”组后面附加一个数字,例如
$1
是a+typical+get+query
并且$19
是页码,它将返回a+typical+get+query9
,如您所看到的末尾附加的页码。
print_r($_GET):
Array
(
[a] => a typical get query
[b] => some other field for the query
[c] => 1
[d] => 1
[e] => 1
[f] => a typical get query1
[g] => a typical get query3
[h] => a typical get query5
[i] => a typical get query7
[j] => a typical get query9
)
为什么这样做呢?
解决方法
在mod_rewrite中有9个反向引用($ 1,$ 2,... $ 9)的限制。
$ 10 $ 11等反向引用仅被解释为$ 1。
有关保留反向引用的一些提示,请参见这篇文章(您必须以不同的方式编写规则):
mod_rewrite参数数/反向引用限制