RewriteRule使用10美元,11美元,12美元等等

Mac*_*Mac 2 apache mod-rewrite get

在使用mod重写时,似乎我不能使用正则表达式组,例如

results/(.*?)(/(.*?))(/(.*?))(/(.*?))(/(.*?))(/(.*?))(/(.*?))(/(.*?))(/(.*?))(/(.*?))
Run Code Online (Sandbox Code Playgroud)

这会做这样的事情:

results.php?a=$1&b=$3&c=$5&d=$7&e=$9&f=$11&g=$13&h=$15&i=$17&j=$19
Run Code Online (Sandbox Code Playgroud)

对于那些有a的数字1会附加$1组和数字,例如

$1a+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
)
Run Code Online (Sandbox Code Playgroud)

它为什么这样做?

Joh*_*ehm 6

mod_rewrite中有9个反向引用($ 1,$ 2,... $ 9)的限制.

$ 10 $ 11等返回参考被解释为仅1美元.

有关保存反向引用的一些提示,请参阅此文章(您必须以不同方式编写规则): mod_rewrite参数数量/反向引用限制