有没有办法在mod_rewrite中使用超过$1
到$9
位置参数? ${10}
不起作用。
答案 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]
(是的,这很荒谬,如果适用,递归可能是更好的方法)。