需要有关正则表达式的帮助 - URL重定向

时间:2010-05-23 15:07:58

标签: php regex mod-rewrite

我正在尝试将一个易于记忆的网址重定向到一个php文件,但我在使用正则表达式时遇到了一些麻烦。

这就是我现在所拥有的:

RewriteRule ^tcb/([a-zA-Z0-9]{1,})/([a-zA-Z0-9]{1,})/([a-zA-Z0-9]{1,}) /tcb/lerbd.php?autocarro=$1&tipo=$2&dsd=$3

它正在工作,但只有我提供所有3个参数。我希望最后两个参数是可选的,因此它只适用于第一个或全部三个。我希望你能帮助我。

非常感谢。

2 个答案:

答案 0 :(得分:1)

添加?在RegEx中的某些东西使它成为可选的。所以像:

RewriteRule ^tcb/([a-zA-Z0-9]{1,})/?(([a-zA-Z0-9]{1,})/([a-zA-Z0-9]{1,}))? /tcb/lerbd.php?autocarro=$1&tipo=$3&dsd=$4

注意我引入了围绕第2和第3个参数的新分组,因此必须改变反向引用。 您可能还想在最后放置一个可选的/,因此它可以像使用指向目录一样使用...

答案 1 :(得分:0)

以下是我解决问题的方法。对于可能偶然发现这个问题的人来说可能会有所帮助:

RewriteRule ^tcb/([a-zA-Z0-9]{1,})/?(([a-zA-Z0-9]{1,})/([a-zA-Z0-9]{1,}))?$ /tcb/lerbd.php?autocarro=$1&tipo=$3&dsd=$4