Проблема с алиасом в URL при наличии пагинации

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
pioneer
Сообщения: 126
Зарегистрирован: 2013.03.10, 23:27

Проблема с алиасом в URL при наличии пагинации

Сообщение pioneer » 2018.08.02, 18:00

Доброго времени суток, уважаемые форумчане!
Собственно, столкнулся со следующей проблемой - в конфигурации компонента CUrlManager среди прочих есть правило:

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

'/category/<slug>/' => '/site/category'
при этом значения атрибутов компонента таковы:

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

'class' => 'CUrlManager',
'urlFormat' => 'path',
'urlSuffix' => '',
'showScriptName' => false,
'cacheID' => 'cache',
'useStrictParsing' => true,
Правило говорит о том что ссылки вида http://site.ru/category/custom-alias/ должен обрабатывать actionCategory() контроллера SiteController, здесь все понятно и пока работает. Но как только я "завел" на странице пагинацию, то столкнулся со следующей проблемой: вместо желаемой ссылки http://site.ru/category/custom-alias/?page=2 пагинатор выдает http://site.ru/category/?slug=custom-alias&page=2. Не могу понять что и где я упустил.
Буду благодарен за помощь, заранее спасибо всем неравнодушным откликнувшимся! :)

UPD.: стоит отметить, что "неправильную" ссылку вида http://site.ru/category/?slug=custom-alias&page=2 генерит сам пагинатор, но при этом текущая страница также без проблем доступна по "нужной" ссылке http://site.ru/category/custom-alias/?page=2, что не будет хорошо для поисковой оптимизации. Подскажите пожалуйста, как задать единственно верное правило для доступности ссылки по паттерну вида http://site.ru/category/custom-alias/?page=2 и только нему?

pioneer
Сообщения: 126
Зарегистрирован: 2013.03.10, 23:27

Re: Проблема с алиасом в URL при наличии пагинации

Сообщение pioneer » 2018.08.03, 13:29

Решение оказалось в следующем - поскольку кроме упомянутого правила присутствовало ещё одно:

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

'/category/' => '/site/category',
'/category/<slug>/' => '/site/category'
то обращение двух роутов к одному и тому же экшену и повлекло за собой вышеописанную ошибку. После их разделения на

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

'/category/' => '/site/category',
'/category/<slug>/' => '/site/ShowCategory'
проблема исчезла.

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

Re: Проблема с алиасом в URL при наличии пагинации

Сообщение andku83 » 2018.08.03, 16:29

По идее если бы вы поменяли местами правила, то разделять не пришлось бы

Ответить