我在解决如何处理Yii 1.1中一些当前返回404的旧URL时遇到问题。 下面是配置文件的一小部分。
'urlManager' => array(
'class' => 'UrlManager',
'urlFormat' => 'path',
'showScriptName' => false,
'rules' => array(
'/' => '/site/index',
'/niche.php?slug=<slug>' => '/videos?niche=<slug>',
),
),
第一个规则很好,但是第二个规则,我不太清楚如何正确编写。任何建议将不胜感激。谢谢!
答案 0 :(得分:0)
如果我理解正确,则您需要一种重定向...
这是一个可能的解决方案:
class CBeginRequest {
public static function run($event /* CEvent */) {
$uri = strtolower($event->sender->request->requestUri);
$par = parse_url($uri);
if (isset($par['path']) && isset($par['query'])) {
if ($par['path'] == '/niche.php') {
parse_str($par['query'], $get);
$niche = isset($get['slug']) ? $get['slug'] : '';
Yii::app()->getRequest()->redirect('/videos?niche='.$niche);
}
}
}
}
'onBeginRequest'=>array('CBeginRequest', 'run'),