Вы можете помочь мне упростить этот RewriteRule? - PullRequest
1 голос
/ 16 октября 2011

Как и большинство кодировщиков, я люблю выбирать самый короткий и простой маршрут при кодировании чего-либо, и 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 голосов
/ 16 октября 2011

Это не совсем тот ответ, который вы ищете, но вы можете упростить правило переписывания до этого:

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