urlrewrite $ 1后的数字

时间:2013-12-29 19:18:34

标签: regex apache .htaccess mod-rewrite url-rewriting

我需要在urlrewrite规则中将一些数字放入生成的url中,所以从url开始 “/ test / 723 /”我会得到“/ test / 700-series / 723 /” 显然这个

RewriteRule ^/test/([1-9])([0-9]{2})/$  /test/$100-series/$1$2/ 

不起作用,因为100美元无法正确解释。有没有办法将$ 1与其背后的任何数字分开?

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.