在.htaccess上多次匹配正则表达式

时间:2011-11-04 16:45:49

标签: regex .htaccess

我再次来寻求你的帮助。我现在有一个巨大的.htaccess文件,我们用它来美化我们的网址。这通常非常简单,但我现在遇到了一个问题,我不知道如何解决。如果它是PCRE我知道我可以简单地做一个foreach来处理这个,但在.htaccess我不知道如何继续。

我的URl可以有一组关于页面上分隔块的页面ID,这是我用来匹配它的代码(?:/((?:glc|gli[0-9]+)?page)/([0-9]+)),我将它添加到我的[L,QSA]规则{{1} 1}}(表达式比它复杂得多,我只是得到相关部分)。

通常情况下,网址上可能会显示或不显示网址,在这些情况下,我只需在其末尾添加$1=$2,但在此特定网址上,我最多可能有28个。我可以在匹配模式中添加?或更具体的*,但我不知道如何在返回部分引用每对。

简单地说,我想转换:

{0,28}

任何人都有任何想法?

对于那些虐待狂的人来说,这是完整的正则表达式。 pageid = $ 4是用于在网址上只有1个可能性时抓取页面的普通代码。这就是我想要改变的。

/page/10/glcpage/1/gli123/9 => page=10&glcpage=1&gli123page=9
/page/5 => page=5

编辑:修复一些错误复制的括号

1 个答案:

答案 0 :(得分:0)

您必须为每个可能的pageid单独测试。没有办法循环比赛或处理可变数量的比赛。