urlManager, i18nm, убрать index из URL

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Chelobaka
Сообщения: 169
Зарегистрирован: 2018.06.01, 09:54

urlManager, i18nm, убрать index из URL

Сообщение Chelobaka » 2019.04.16, 12:47

Здравствуйте,
Установил мультиязычность на basic приложении.

http://yii2best.ru/ua = site/index - language = UA
http://yii2best.ru/ = site/index - language = RU


В момент смены языка на главной url приобретают вид:
http://yii2best.ru/index
http://yii2best.ru/ua/index

На других страницах:

http://yii2best.ru/about
http://yii2best.ru/ua/about

Как убрать index? Спасибо.

Аватара пользователя
samdark
Администратор
Сообщения: 9175
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: urlManager, i18nm, убрать index из URL

Сообщение samdark » 2019.04.16, 14:23

Установил мультиязычность на basic приложении.
Поясните, как и что именно сделали.

Аватара пользователя
Chelobaka
Сообщения: 169
Зарегистрирован: 2018.06.01, 09:54

Re: urlManager, i18nm, убрать index из URL

Сообщение Chelobaka » 2019.04.16, 14:53

Мультиязычнойть: i18n

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

 'urlManager' => [
            'class' => 'codemix\localeurls\UrlManager',
            'languages' => ['ru', 'ua' => 'ua'],

            'enableDefaultLanguageUrlCode' => false,
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                '<action:(.*)>' => 'site/<action>',
                '/' => 'site/index',
            ],
        ],
        'i18n' => [
            'translations' => [
                'common*' => [
                    'class' => 'yii\i18n\PhpMessageSource',
                    'basePath' => '@app/messages',
                    'sourceLanguage' => 'uk-UA',
                    'fileMap' => [
                        'app'       => 'app.php',
                        'app/error' => 'error.php',
                    ],
                ],
            ],
        ],
Свитч языка.

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

use yii\bootstrap\Html;

if (Yii::$app->language == 'ru') {

    echo HTML::a('Переход на Украинский', array_merge(Yii::$app->request->get(), [Yii::$app->controller->route, 'language' => 'ua']));

} else {
    echo HTML::a('Переход на Русский', array_merge(Yii::$app->request->get(), [Yii::$app->controller->route, 'language' => 'ru']));

}

Аватара пользователя
samdark
Администратор
Сообщения: 9175
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: urlManager, i18nm, убрать index из URL

Сообщение samdark » 2019.04.16, 16:40

Скорее всего нужно поправить LanguageDropdown, если вы его используете. Вот тут: https://github.com/codemix/yii2-localeu ... ion-widget

Аватара пользователя
Chelobaka
Сообщения: 169
Зарегистрирован: 2018.06.01, 09:54

Re: urlManager, i18nm, убрать index из URL

Сообщение Chelobaka » 2019.04.17, 16:56

samdark писал(а):
2019.04.16, 16:40
Скорее всего нужно поправить LanguageDropdown, если вы его используете. Вот тут: https://github.com/codemix/yii2-localeu ... ion-widget
Спасибо за ваш ответ. Но в любом случае оба урл обрабатываются без ошибки.
http://yii2best.ru/index
http://yii2best.ru/ua/index

Вот этот index мне и мешает.

Аватара пользователя
samdark
Администратор
Сообщения: 9175
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: urlManager, i18nm, убрать index из URL

Сообщение samdark » 2019.04.17, 20:09

Я не про обработку, а про генерацию.

Ответить