2010-07-08 100 views
0
RewriteRule ^foo-bar-([0-9]+)-([a-z]+)-([a-z-+]+)/$ index.php?a[]=&b=$1&c=$2&d=$3&e=$4&f=$5 [L,NC] 

我怎麼能把最後一個參數從規則不需要沒有添加兩行,並在第一個刪除它,然後在第二個保持..?重寫規則問題

因此,裁定是一條線,但有兩個選項acees網址,如:

/foo-bar-2-steps/ 

/foo-bar-2-steps-eq/ 

回答

3

執行下列操作之一:

  • 使用兩重寫規則,每一個案件
  • 打上問號可選部分後,像這樣:

foo-bar-([a-z]+)(-([a-z]+))?

這裏,第二個參數是可選的。請注意,這會更改您的數字索引,因爲您使用了額外的括號。

+0

謝謝Sjoerd,它的工作。 現在我有一個問題: 我如何才能讓一個變量的htaccess然後用它在所有的重寫規則,如: 重寫規則^(宋|其他|等).... 重寫規則^(宋|其他|等).... 爲: SETENV VAR(曾根|另一個|等) 重寫規則^(ENV:VAR).... – oriceon 2010-07-08 10:18:53

+0

每個()定義的變量。你可以通過$ 1訪問第一個(),secound通過$ 2,... – JochenJung 2010-07-08 10:32:29

+0

我知道這一點。還有一個想法。我想在.htaccess中設置一個變量,然後在我所有的RewriteRule中使用它,以避免每次都重複一個代碼。如果我想從該變量中更改一個選項,請儘快完成。 – oriceon 2010-07-08 10:34:29