我们可以用mod_rewrite超越$ 1 - $ 9的位置参数

时间:2011-11-11 23:32:48

标签: mod-rewrite

有没有办法在mod_rewrite中使用超过$1$9位置参数? ${10}不起作用。

1 个答案:

答案 0 :(得分:0)

在apache的RewriteRule backreference definition中,它说:

  

RewriteRule反向引用:这些是$ N(0< = N< = 9)形式的反向引用,它提供对模式的分组部分(括号中)的访问, RewriteRule受当前RewriteCond条件的限制。

但是,您可能能够匹配RewriteCond中的一些URI并使用%N反向引用,我自己从未尝试过但可能是这样的吗?

RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/
RewriteRule ^[^/]+/[^/]+/[^/]+/[^/]+/[^/]+/[^/]+/[^/]+/[^/]+/[^/]+/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/ /ok_wow?a=%1&b=%2&c=%3&d=%4&e=%5&f=%6&g=%7&h=%8&i=%9&j=$1&k=$2&l=$3&m=$4&n=$5&o=$6p=$7&q=$8&r=$9 [R]

(是的,这很荒谬,如果适用,递归可能是更好的方法)。