URL-сегменты на основе перенаправления в modx Evo - PullRequest
0 голосов
/ 26 января 2011

допустим, у вас есть такой URL-адрес, введенный в modx Evo

www.zipit.com.org/reference/toamovie/

, если у меня есть страница с именем toamovie, чей родитель называется reference

но когда кто-то вводит этот URL, я хочу, чтобы он сделал эквивалент этого

www.zipit.com.org/reference.html?myvar=toamovie

дополнительно или, что более важно, я бы хотел, чтобы результат был более похож на этот,где 12 будет идентификатором документа

`www.zipit.com.org / reference.html? myid = 12 '

Интересно, возможно ли это вообще?с modx Evolution. Я думаю, что это должно быть возможно сделать с некоторой магией htaccess, ну, во всяком случае, с первой частью.Как я могу получить значение этого документа?Это было бы совершенно недоступно для htaccess, поэтому ему понадобилась бы другая часть, которая могла бы подключиться к базе данных и получить это значение.

1 Ответ

0 голосов
/ 24 января 2012

Это должно быть возможно с помощью специального плагина, вызываемого по событию "OnPageNotFound".

<?php
$url = $_SERVER['REQUEST_URI']; //get the url        
//split the url into pieces and remove empty values
$pieces = array_filter(explode('/', $url));

//reset the array keys
$temp = array();
foreach ($pieces as $piece) {
    $temp[] = $piece;
}
$pieces = $temp;

//basic checking of the url
if (count($pieces) == 2) {
    $modx->sendRedirect('http://www.zipit.org/' . $pieces[0]  .".html?myid=" . $pieces[1]);
}
?>

помните, что плагины не заключены в теги php. также, что этот скрипт будет передавать любые неправильные URL на zipit.org. Некоторая обработка ошибок, вероятно, желательна.

...