modx重定向无限循环

时间:2013-03-07 10:24:11

标签: php modx modx-revolution

我正在使用Modx革命的最新版本。我想创建一个插件,它将检查当前页面的网址。在某些情况下,当前网址与给定模式匹配,然后我想重定向到新网址。

我的第一个疑问是:如果我去了 www.mydomain.com/wrong-uri 并且错误 - uri不存在,则转到 www.mydomain.com 。在这种情况下,如果我当前的网址是 www.mydomain.com/wrong-uri 那么资源ID是什么?

我的第二个问题是:  我做到了这一点:

if ($modx->event->name == 'OnWebPagePrerender'){
$id = $modx->resource->get('id');
$curUrl = $modx->runSnippet('getCurrentPage',array('id' =>$id)); 
$output = &$modx->resource->_output;
$redUrl ="http://".$_SERVER['HTTP_HOST'].'/custom/';             
if(($curUrl !=$redUrl)&&  $curUrl == ("http://".$_SERVER['HTTP_HOST']."/")){



$modx->sendRedirect($redUrl);               
}
return ;
}

浏览器说这是无限重定向循环。为什么?

这个插件被多次调用?那么这个插件的适当事件是什么?提前谢谢......

2 个答案:

答案 0 :(得分:0)

是的,我一整天都得到了...... !!! 对于www.mydomain.com/wrong-uri,我的$ curUrl是www.mydomain.com/。所以总是如果变得真实而且我处于无限循环中。

答案 1 :(得分:0)

如果我去 www.mydomain.com/wrong-uri 并且错误-uri不存在,则会转到系统设置error_page中指定了id的页面。也许http://rtfm.modx.com/display/revolution20/Plugins#Plugins-PageNotFoundRedirector%3A会有所帮助。