Apache mod_rewrite的正则表达式中多个匹配的多个反向引用

时间:2014-01-24 11:09:38

标签: regex apache .htaccess mod-rewrite recursion

我需要知道是否有可能,在mod_rewrite中使用正则表达式来匹配某个序列的不可预测次数,并使用对每个序列的反向引用来访问匹配。

一个例子比许多单词更有用:

要匹配的序列:

  

... 0102030405

(序列长度= n * 2,其中n可以是大于或等于1的数字)

正则表达式:

  

([0-9] [0-9] +)

我需要能够获得序列中的每个n个匹配项,以便在mod_rewrite规则中使用它们,这将提供以下翻译:

  

/01.html => /01/index.html

     

/0102.html => /01/02/index.html

     

/010203.html => /01/02/03/index.html

     

/01020304.html => /01/02/03/04/index.html

     

...

这可能会得到这个吗?

1 个答案:

答案 0 :(得分:1)

您可以使用以下两个规则:

RewriteRule ^(.+?/)?([0-9]{2})\.html$ /$1$2/index.html [L]

RewriteRule ^(.+?/)?([0-9]{2})([0-9]+.+?\.html)$ /$1$2/$3 [L]