Yii 1.1 urlManager .php?param = <param />重定向

时间:2019-02-08 10:08:44

标签: yii yii-components yii-url-manager

我在解决如何处理Yii 1.1中一些当前返回404的旧URL时遇到问题。 下面是配置文件的一小部分。

 'urlManager' => array(
        'class' => 'UrlManager',
        'urlFormat' => 'path',
        'showScriptName' => false,
        'rules' => array(
            '/' => '/site/index',
            '/niche.php?slug=<slug>' => '/videos?niche=<slug>',
         ),
  ),

第一个规则很好,但是第二个规则,我不太清楚如何正确编写。任何建议将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

如果我理解正确,则您需要一种重定向...

这是一个可能的解决方案:

  1. 在protected / components中创建文件CBeginRequest.php
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);
            }
        }
    }

}
  1. 将行添加到protected / config / config.php:
    'onBeginRequest'=>array('CBeginRequest', 'run'),