Drupal → Подмена домена языка

08.05.2015

Если в настройках друпала стоит выбор текущего языка на основе домена, а в настройках языков прописаны реально существующие домены, то сайт становится практически невозможно девелопить на локальном компьютере — все ссылки превращаются в абсолютные и ссылаются на домен, указанный в настройках языка.

Решения для Drupal 8+

Добавить в локальный settings.php:

$config['language.negotiation']['url']['domains']['ru'] = 'ru.mysite.local';
$config['language.negotiation']['url']['domains']['en'] = 'en.mysite.local';

Решения для Drupal 7

Решение — установить модуль Language Domains и прописать в settings.php что-нибудь такое:

if (strpos($_SERVER['HTTP_HOST'], '.local')) {
  $conf['language_domains']['ru'] = 'ru.mysite.local';
  $conf['language_domains']['en'] = 'en.mysite.local';
}
Написанное актуально для
Drupal 7, Drupal 8+
Похожие записи

Комментарии

С языками вообще интересная штука. У меня тема на основе Zen никак не хотела работать на некоторых мобильных устройствах. Всё перелопатил, недели две искал, но ничего не нашел пока не понял, что он не может определить язык по браузеру. Поставил определение по браузеру на 3-е место после языка по умолчанию и языка пользователя и сразу всё заработало.

если поставить после языка по умолчанию, то правило просто не будет срабатывать

Это понятно. Мой комментарий прямого отношения к описанной проблеме отношения не имеет, но пускай и другие узнают, что вот есть такой нюанс.

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

как после этого пользоваться продакшен версией сайта?

Кирилл
11.06.2015, 17:47

Спасибо! Только как быть с переменной $cookie_domain в том же settings.php? У меня на многоязычном было так:
$cookie_domain = '.domain.ext';
Если не заремить эту строку, то авторизация не работает.

Добавить комментарий