2011-09-24 25 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

谢谢我试试看。 –

相关问题