将正则表达式规则合并为一个?

时间:2012-06-20 22:22:39

标签: regex .htaccess mod-rewrite

我如何将这些合并为一行?我确信这是可能的。

RewriteRule ^forums$                   pages/forum.php [L]
RewriteRule ^forums/([A-z]+)$          pages/forum.php?category=$1 [L]
RewriteRule ^forums/([A-z]+)/([A-z]+)$ pages/forum.php?category=$1&sort=$2 [L]

1 个答案:

答案 0 :(得分:1)

RewriteRule ^forums(/([A-z]+)(/([A-z]+))?)?$ pages/forum.php?category=$2&sort=$4 [L]

请注意,您仍在向PHP脚本提供categorysort,但它们将为空。

我认为您可能会遇到包含意外字符的[A-z]问题。 (有关详细信息,请查看ASCII字符集)。如果您真正想要的话,请将其替换为[A-Za-z][[:alpha:]]