Yii 1.1 urlManager .php? Param = <param>редирект - PullRequest
0 голосов
/ 08 февраля 2019

У меня проблемы с выяснением того, как обрабатывать некоторые старые URL в Yii 1.1, которые в настоящее время возвращают 404. Ниже небольшой кусочек файла конфигурации.

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

первое правило работает нормально, второе, однако, я не могу понять, как правильно писать.Любые предложения будут высоко оценены.Спасибо!

1 Ответ

0 голосов
/ 11 февраля 2019

Если я правильно понимаю, вы хотите что-то вроде перенаправления ...

Вот возможное решение:

  1. Создайте файл 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);
            }
        }
    }

}
Добавить строку в защищенный / config / config.php:
    'onBeginRequest'=>array('CBeginRequest', 'run'),
...