urlManager - не работают ЧПУ

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Diakon
Сообщения: 9
Зарегистрирован: 2015.07.02, 18:12

urlManager - не работают ЧПУ

Сообщение Diakon » 2018.08.12, 18:16

Добрый день!
Подскажите, пожалуйста, кто знает в чем проблема.
Мне нужно перенаправлять на модуль при определенных URL
например, если пришли на главную, то отправлять запрос на pages\pages\index\1
Модуль и контроллер pages есть и в нем экшен actionIndex($id). Если я просто введу в адресной строке \pages\pages\index\1, то отрабатывает как надо и в экшен приходит, но если делать на сайте, то переход не происходит - выдает 404
URL менеджер имеет вид

Код: Выделить всё

[urlManager] => [
                (
                    [class] => yii\web\UrlManager
                    [enablePrettyUrl] => 1
                    [showScriptName] => 
                    [rules] => [
                          [pattern] => /
                                    [route] => pages/pages/index/1
                           ],
                           [
                                    [pattern] => /page-2
                                    [route] => pages/pages/index/2
                           ],
                            [
                                    [pattern] => /page-2/page-3
                                    [route] => pages/pages/index/3
                             ],
              		    <action>=> frontend/<action>
                            <controler>/<action> => <controler>/<action>
                            <module>/<controler>/<action>/<id> => <module>/<controler>/<action>

                       ]

              ]
Если правило '/' => 'pages/pages/index/1' заменить на просто '/' => 'pages/pages/index', то работает, но мне нужно передать в параметре ID
И еще вопрос. Как должно выглядеть правило в котором направлять все запросы вида catalog\page1\page2\ page3 (т.е. содержащие путь в utl через \, но начинающиеся со слова catalog) на 1 конкретный экшен, например на pages\pages\catalog ?
Заранее спасибо всем, кто поможет!

andku83
Сообщения: 680
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: urlManager - не работают ЧПУ

Сообщение andku83 » 2018.08.13, 00:16

Код: Выделить всё

                  'rules' => [
                        [  // public function actionIndex($paramName)
                                'pattern' => '/<paramName:\d+>',
                                'route' => 'pages/pages/index',
                                'defaults' => ['paramName' => 1],
                        ],
                        [  // public function actionIndex($paramName1, $paramName2)
                                'pattern' => '/<paramName1:\d+>/<paramName2:\d+>',
                                'route' => 'pages/pages/index',
                        ],
              		 '<action>' => 'frontend/<action>',
                         '<controler>/<action>' => '<controler>/<action>',
                         '<module>/<controler>/<action>/<id>' => '<module>/<controler>/<action>',
                   ]

Ответить