Проблема с Url manager

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Smiler
Сообщения: 26
Зарегистрирован: 2015.03.19, 15:55

Проблема с Url manager

Сообщение Smiler »

Здравствуйте! Начинаю настраивать ЧПУ и появилась проблема что параметры GET запроса не могу спрятать.

Имеется ссылки site.ru/index.php?r=post/index&alias=welcome
После подключения URlManager

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

'urlManager' => [
            
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            //'urlFormat' => 'path',
            'rules' => [
                'index' => 'site/index',
                'about' => 'site/about',
                'login' => 'site/login',
                'logout' => 'site/logout',
                'signup' => 'site/signup',
                'request-password-reset' => 'site/request-password-reset',
                
                'post' => 'post/index',

            ]
        ], 
Ссылка преобразуется в такой вид site.ru/post?alias=welcome
Какие настройки сделать, чтобы получить такой вид site.ru/post/welcome ??
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Проблема с Url manager

Сообщение ElisDN »

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

'post/<alias:[\w-]+>' => 'post/index', 
Smiler
Сообщения: 26
Зарегистрирован: 2015.03.19, 15:55

Re: Проблема с Url manager

Сообщение Smiler »

ElisDN писал(а):

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

'post/<alias:[\w-]+>' => 'post/index',
если не трудно, то можете расписать?
Как я понял action/<переменная:значение> , а вот что значит [\w-]+
Smiler
Сообщения: 26
Зарегистрирован: 2015.03.19, 15:55

Re: Проблема с Url manager

Сообщение Smiler »

Спасибо! Я думал \w \d и прочее это встроенные параметры yii2 =) Уже совсем перегрелся

Последний вопрос по UrlManager на сегодня :D

В данный момент у меня для 1 новости идут две ссылки
site.ru/post?alias=welcome
site.ru/post/welcome

Как можно сделать так, чтобы исходной не существовало или просто перенаправляло на новую ссылку ?
mickgeek
Сообщения: 957
Зарегистрирован: 2014.05.31, 20:50
Откуда: Санкт-Петербург
Контактная информация:

Re: Проблема с Url manager

Сообщение mickgeek »

Укажите UrlManager::enableStrictParsing значение true.
Smiler
Сообщения: 26
Зарегистрирован: 2015.03.19, 15:55

Re: Проблема с Url manager

Сообщение Smiler »

mickgeek писал(а):Укажите UrlManager::enableStrictParsing значение true.
Это было первое что я сделал) Но не работает только тот, вариант, что я показал. Как я понял если в get запросе буду использовать переменные, то этот вариант не поможет мне.
Аватара пользователя
NEIRON
Сообщения: 102
Зарегистрирован: 2013.10.23, 07:18

Re: Проблема с Url manager

Сообщение NEIRON »

По примеру проектов
ElisDN писал(а):
часть своего проекта разбил на модули

Имеются такие конфиги в urlManager:

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

         '' => 'main/default/index',
        'contact' => 'main/contact/index',
        '<_a:error>' => 'main/default/<_a>',
        '<_a:(login|logout|signup|confirm-email|request-password-reset|reset-password)>' => 'user/default/<_a>',

        '<module:main|user|organization>' => '<module>/default/index',
        '<module:main|user|organization>/<id:\d+>' => '<module>/default/view',
        '<module:main|user|organization>/<action:update|delete>/<id:\d+>' => '<module>/default/<action>',
        '<module:main|user|organization>/create' => '<module>/default/create',

        '<controller:[\w\-]+>' => '<controller>/index',
        '<controller:[\w\-]+>/<id:\d+>' => '<controller>/view',
        '<controller:[\w\-]+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
        '<controller:[\w\-]+>/<action:\w+>' => '<controller>/<action>',
т.е. в модули вынесено организации и пользователи, остальное пока в общей куче

Все правила работают корректно, по крайней мере, на сколько я могу заметить.
Не работают login, logout и т.д.

Ссылки формирую вот так:

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

Yii::$app->user->isGuest ? [
      'label' => Yii::t('app', 'Login'),
      'url' => ['/user/default/login'],
      'options' => ['class' => 'pull-right']
    ]
При переходе по ссылке получаю 404 страницу.
Если в адресной строке явно указать /user/default/login то открывается, то что нужно

Debugger пишет про какой-то users:
screenshot-atlant.grcc.dev 2015-06-03 17-56-48.png
screenshot-atlant.grcc.dev 2015-06-03 17-56-48.png (146.73 КБ) 3824 просмотра
Аватара пользователя
NEIRON
Сообщения: 102
Зарегистрирован: 2013.10.23, 07:18

Re: Проблема с Url manager

Сообщение NEIRON »

Вопрос закрыт, удалил ненужные расширения, которые в своё время ставил, поюзал и отключил из config.php, но как получилось, в системе они всё равное как-то использовались. Есть подозрение, что чужие расширения, связанные с RBAC как-то влияли на работу UrlManager.
Ответить