0

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

RewriteCond %{ENV:REDIRECT_STATUS} ^$

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

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

输出的 url 如下:

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

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

4

1 回答 1

2

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

于 2012-11-28T22:42:33.520 回答