在modx Evo中基于url段重定向

时间:2011-01-26 06:03:23

标签: .htaccess uri modx modx-evolution

假设您在modx Evo中输入了这样的网址

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

如果我有一个名为toamovie的页面,其父级名称为reference

但是当有人输入该网址时,我希望它能够完成相同的操作

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

另外,或者更重要的是, 我希望结果更像这样,其中12将成为文档的id

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

我想知道这是否可能与modx Evolution一起使用。我认为这应该可以用一些htaccess魔法,反正第一部分。我怎么能得到文件的价值?这对于htaccess来说是非常难以访问的,所以需要另外一个可以插入数据库并获得该值的部分。

1 个答案:

答案 0 :(得分:0)

应该可以在“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。有些错误处理可能是可取的。