0

私の正規表現コードは、2 番目の変数 ([^&]+)(&.*) でうまく機能しますが、(2 番目と同じ) のmyvar=後にある 3 番目を取得できません。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//

では、最後の 2 つのバックスラッシュの間にある 3 番目の変数を出力するにはどうすればよいでしょうか。

4

1 に答える 1

2

必要なのは、3番目ではなく4番目のキャプチャです。3つ目は(&.*)、それが空であってもです。数を決定するには、左から右に開き括弧を数えるだけです。

于 2012-11-28T22:42:33.520 に答える