2011-09-24 67 views
1
mydomain.com/MyFolder/parameter-1 

我有這樣的重寫規則htaccess的 -重寫規則接受3個參數,但第二和第三個參數是可選的

RewriteRule ^([a-z0-9\-]+)/?$ index.php?c=$1 [NC,L] 

htaccess的文件是內部[MyFolder中],並將該只接受單個參數。

怎樣才能做一個重寫規則,接受3個參數,但第二和第三個參數是可選的,所以,下面的4個網址都可能

mydomain.com/MyFolder/param-1/param-2/param-3 
mydomain.com/MyFolder/param-1 
mydomain.com/MyFolder/param-1/param-2 
mydomain.com/MyFolder/param-1/param-3 

編輯:生病使該參數3始終與字開頭[流行]

感謝

+0

不要忘記驗證答案,如果這個工程! – 3on

回答

2

RewriteRule ^([a-z0-9\-]+)/?([a-z0-9\-]+)?/?([a-z0-9\-]+)?/?$ index.php?c=$1&d=$2&e=$3 [NC,L]

這將工作:

mydomain.com/MyFolder/param-1/param-2/param-3 
mydomain.com/MyFolder/param-1 
mydomain.com/MyFolder/param-1/param-2 

$_GET[d]$_GET[e]在某些情況下的值爲''

有:

mydomain.com/MyFolder/param-1/param-2 
mydomain.com/MyFolder/param-1/param-3 

我似乎是不可能的是,你怎麼能知道,如果第二個參數2或參數3?

+0

如果讓它以PARAM3總是以單詞[pop]開頭的方式進行,該怎麼辦? RewriteRule會是什麼。謝謝 –

+0

然後:'^([a-z0-9 \ - ] +)/?([a-z0-9 \ - ] +)?/?(pop [a-z0-9 \ - ] +)?/ ?$'應該可以工作。 – 3on

+0

謝謝我試試看。 –