Apache Url重写查询字符串SEO

时间:2013-02-28 22:29:34

标签: php apache url-rewriting query-string iirf

我有以下重写。

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个查询字符串选项可选。我能够使用多个重写规则并将它们按正确的顺序排除,但我想得到它以便我可以使用一个规则。

1 个答案:

答案 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]