RewriteRule接受3个参数但是2&第三个参数是可选的

时间:2011-09-24 01:51:00

标签: mod-rewrite

mydomain.com/MyFolder/parameter-1

我有这个htaccess RewriteRule -

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

htaccess文件在[MyFolder]中,只接受一个参数。

如何使RewriteRule接受3个参数,但第2和第3个参数是可选的,以便以下4个URL都是可能的

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

编辑:我认为PARAM3始终以单词[pop]

开头

由于

1 个答案:

答案 0 :(得分:3)

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

对我来说似乎不可能,你怎么知道第二个是param 2还是param 3?