你能帮我简化这个RewriteRule吗?

时间:2011-10-16 04:53:29

标签: php .htaccess mod-rewrite url-rewriting friendly-url

与大多数编码器一样,我喜欢在编写内容时采用最短且最简单的路径,而mod_rewrites也不例外。我只是想知道是否有任何方式来简化这段代码,以便我可以更容易地添加它。

RewriteRule ^giving-tree/([0-9+]?)/?$ giving-tree.php?ageBegin=$1 [nc]
RewriteRule ^giving-tree/([0-9+]?)/([0-9+]?)/?$ giving-tree.php?ageBegin=$1&ageEnd=$2 [nc]
RewriteRule ^giving-tree/([0-9+]?)/([0-9+]?)/([0-9+]?)/?$ giving-tree.php?ageBegin=$1&ageEnd=$2&page=$3 [nc]

基本上我只需要能够将某些部分定义为可选......我不知道是否可行,但我确实可以使用帮助。

1 个答案:

答案 0 :(得分:0)

这不是您正在寻找的答案,但您可以简化重写规则:

RewriteRule ^giving-tree/ giving-tree.php

然后解析$_SERVER['REQUEST_URI']中的giving-tree.php。这是一个简单的版本:

$parts = explode('/', $_SERVER['REQUEST_URI']);
if(isset($parts[1]){
  $ageBegin = $parts[1];
}
if(isset($parts[2]){
  $ageEnd = $parts[2];
}
if(isset($parts[3]){
  $page = $parts[3];
}