Я хочу перенаправить этот запрос для «homebox / 1» на «homebox / 1 / [uid]», если вошедший в систему пользователь пытается получить к нему доступ. На данный момент мне нет дела до анонимных пользователей.
Это код, который я поместил в верхнюю страницу homebox.tpl.php:
if(!is_numeric(arg(2))){
global $user;
if($user->uid){
if(count($_GET) > 1){
$get = array();
foreach($_GET as $k=>$v){
if($k != 'q')
$get[] = $k.'='.$v;
}
$get2 = '?'.implode('&',$get);
}
header("HTTP/1.1 301 Moved Permanently");
header('location:/homebox/1/'.$user->uid.$get2);
}else{
//redirect to error page
}
}
Однако файлы * .tpl.php обрабатываются поздно в запросе? В этом случае я делаю это довольно неэффективно.
Я знаю о модуле перенаправления пути (http://drupal.org/project/path_redirect).. Я не хочу его использовать, потому что хотел бы узнать, есть ли какой-нибудь Drupal API для перенаправления и / или методы для перехвата и перенаправления запроса прямо в начале цепочки обработки.
Спасибо
Arul