我需要在urlrewrite规则中将一些数字放入生成的url中,所以从url开始 “/ test / 723 /”我会得到“/ test / 700-series / 723 /” 显然这个
RewriteRule ^/test/([1-9])([0-9]{2})/$ /test/$100-series/$1$2/
不起作用,因为100美元无法正确解释。有没有办法将$ 1与其背后的任何数字分开?
答案 0 :(得分:2)
你非常接近,只需删除前导斜杠:
RewriteRule ^test/([1-9])([0-9]{2})/?$ /test/$100-series/$1$2/ [L]
.htaccess
是每个目录指令,Apache从RewriteRule
URI模式中剥离当前目录路径(从而导致斜杠)。根据official Apache doc明确指出:
RewriteRule反向引用:这些是$ N形式的反向引用(0 <= N <= 9)。 $ 1到$ 9可以从RewriteRule访问模式的分组部分(括号中),RewriteRule受当前RewriteCond条件集的约束。 $ 0提供对该模式匹配的整个字符串的访问。
Hence $100 is always interpreted as $1 and 2 literal zeroes.