2011-10-16 148 views
1

像大多數編碼人員一樣,我喜歡在編碼時採用最短和最簡單的路線,而mod_rewrites也不例外。我只是想知道是否有簡化這個代碼,以便我可以更容易地添加到它。你能幫我簡化這個RewriteRule嗎?

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] 

基本上我只需要能夠定義某些部分爲可選....我不知道是否有可能,但我可以確定使用幫助。

回答

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]; 
}