Задать вопрос

Как написать правило для cUrlManager с учетом локализации сайта?

Сайт написан на yii framework 1.11. Есть несколько языковых версий, все они находятся на поддоменах, например:
en.site.com
ua.site.com

Причем для поддоменов содержится правило в .htaccess
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.site\.com$ [NC]
RewriteRule (.*) index.php?cn=%2 [NC,QSA]

Где cn - имя поддомена. Кароче говоря запросы идут к одному скрипту с GET параметром cn, а mod_rewrite переписывает их в поддомены. Это ок.

Проблема в url, которые генерирует пейджер cLinkPager, он дописывает cn как GET параметр, т.е. ссылка на вторую страницу списка новостей выглядит так en.site.com/en?page=2, если нажать на стр1. то url изменится на en.site.com/en?en=. Так не должно быть, нужно так: en.site.com/?page=2, с учетом других GET параметров сортировки должно быть так
en.site.com/?param1=val1&param2=val2&page=2

В конфиге стоит правило
'<cn:\w+>' => 'site/index',

Как можно привести url к требуемому формату?
  • Вопрос задан
  • 2695 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
Lexxtor
@Lexxtor
PHP, Yii2, Android
По моему правильнее все запросы адресовать на index.php без GET параметра. А уже в Yii его получать.
В Yii можно писать правила c доменами:
'http://<lang:\w+>.testing.com/office' => 'office',

Дайте список всех правил. Иначе не понятно как у вас все работает.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы