具有多个GET值的htaccess rewriterule

时间:2012-03-14 23:20:24

标签: .htaccess

我想使用RewriteRule来清理我的URL,我需要重写以允许多个不同的$_GET值,但它们有时需要为空,而不会导致错误。

目前我尝试的是(位于.htaccess):

RewriteRule ^people/(.*)/(.*)/(.*) /people.php?alid=$1&alb=$2&albb=$3

这很好用,只要url有三个斜杠,例如http://www.example.com/people/1/2/3效果很好。

但是,如果我使用网址http://www.example.com/people/1,则结果是404错误,这是我需要防止发生的错误。

有没有办法解决这个问题,所以我可以拥有没有全部三个/的网址而不会收到404错误?

1 个答案:

答案 0 :(得分:1)

尝试^人(/([^ /] +))*

您需要更改数字,因为我的表达式中有一组额外的括号。

[^ /] +匹配不是/的所有内容 /在开头将匹配/ 它在括号内,末尾有一个*,所以你可以有(或某些)0次或更多次。