Regex Apache mod_rewrite正则表达式中多个匹配的多个反向引用
我需要知道是否有可能,在mod_重写中使用正则表达式来匹配某个序列的不可预测次数,并使用对每个序列的反向引用来访问匹配 一个示例可以使用多个词: 要匹配的序列: 0102030405 (序列长度=n*2,其中n可以是大于或等于1的数字) 正则表达式: ([0-9][0-9]+) 我需要能够获得序列中的n个匹配项中的每一个,以便在mod_重写规则中使用它们,该规则将给出以下翻译: /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.htmlRegex Apache mod_rewrite正则表达式中多个匹配的多个反向引用,regex,apache,.htaccess,mod-rewrite,recursion,Regex,Apache,.htaccess,Mod Rewrite,Recursion,我需要知道是否有可能,在mod_重写中使用正则表达式来匹配某个序列的不可预测次数,并使用对每个序列的反向引用来访问匹配 一个示例可以使用多个词: 要匹配的序列: 0102030405 (序列长度=n*2,其中n可以是大于或等于1的数字) 正则表达式: ([0-9][0-9]+) 我需要能够获得序列中的n个匹配项中的每一个,以便在mod_重写规则中使用它们,该规则将给出以下翻译: /01.html=>/01/index.html /0102.html=>/01/02/index.html /010
有可能得到这个吗?您可以使用以下两条规则:
RewriteRule ^(.+?/)?([0-9]{2})\.html$ /$1$2/index.html [L]
RewriteRule ^(.+?/)?([0-9]{2})([0-9]+.+?\.html)$ /$1$2/$3 [L]
不起作用。显然,它没有处理这种情况:/010203.html=>/01/02/03/index.html,上面的规则已经就位
/010203.html
在内部被重写为/01/02/03/index.html
,这正是您在问题中所写的。很可能您有一些相互冲突的规则。如果您想要重定向,那么在第一条规则中添加R
标记为:RewriteRule^(+?/)?([0-9]{2})\.html$/$1$2/index.html[L,R]