我有以下重写。
RewriteRule ^/news/([a-z0-9\-]+)/([a-z0-9\-]+)/?$ /pagebase.php?pbid=3656&nid=$1&title=$2 [QSA,L,I]
http://www.domain.com/news/1/new-event/
以上网址将被重写为:
http://www.domain.com/pagebase.php?pbid=3656&nid=1&title=new-event
这完美无缺。但是我希望人们可以输入:
http://www.domain.com/news没有任何查询字符串,并将其重写为:
http://www.domain.com/pagebase.php?pbid=3656&nid=&title=
但是匹配失败,所以我收到404错误。 无论如何,我可以重写我的规则,使最后2个查询字符串选项可选。我能够使用多个重写规则并将它们按正确的顺序排除,但我想得到它以便我可以使用一个规则。
答案 0 :(得分:2)
使用两个重写规则:
RewriteRule ^/news/([a-z0-9\-]+)/([a-z0-9\-]+)/?$ /pagebase.php?pbid=3656&nid=$1&title=$2 [QSA,L,I]
RewriteRule ^/news$ /pagebase.php?pbid=3656&nid=&title= [QSA,L,I]