正则表达式无法获得第3个变量

时间:2012-11-28 22:40:08

标签: regex .htaccess

我的正则表达式代码适用于第二个变量,([^&] +)(&。*),它位于myvar=之后,但是我无法获得第3个变量,它位于{foo=之后1}}(与第二个相同)。

RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteCond %{QUERY_STRING} ^(.*&)?myvar=([^&]+)(&.*)?&foo=([^&]+)(&.*) [NC]

RewriteRule ^(index\.php)?$ /site/myvar/%2/%3/? [R=301,L]

输出网址如下:

http://localhost/site/myvar/15//

那么如何在最后两个反斜杠之间输出第三个变量?

1 个答案:

答案 0 :(得分:2)

你想要的是第四次捕获,而不是第三次。第三个是(&.*),即使它是空的。要确定数字,只需从左到右计算左括号。