2012-11-28 23 views
0

我的正則表達式代碼適用於第二個變量,([^ &] +)(&。*),它在myvar=之後,但我無法獲得第三個foo=(與第2次相同)。正則表達式無法獲得第三個變量

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// 

因此,如何輸出的最後2個反斜線的第三個變量?

+1

這與PHP有什麼關係?這不是一個.htaccess問題嗎? –

+0

我不知道捕捉會從Cond到Rule。這絕對是這種情況嗎? –

+0

@LightnessRacesinOrbit:Cond中的組前面是百分號(%N,其中N是組號)。這隻適用於最後一個小組。規則中的組前面是美元($ N,其中N是組號)。 http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond –

回答

2

你想要的是第四次捕獲,而不是第三次。第三個是(&.*)即使這是空的。要確定數字,您只需從左到右計算左括號。

+0

嗯,你是對的。謝謝。 – Adige72

相關問題