WPML может обеспечивать поддержку языков из разных доменов и поддоменов. Для этого на вашем сервере необходимо применить некоторые настройки. Начнем с общих вещей, чтобы вы смогли понять, как настроить эту функцию у себя на сервере.

Шаги для обработки запросов из разных доменов

При поступлении запроса происходит следующее:

  1. DNS-сервер сообщает браузеру местоположение сайта.
  2. Веб-сервер принимает запрос и выбирает, какой виртуальный хост должен ответить.
  3. Виртуальный хост использует WordPress и WPML. WPML сообщает WordPress, какую страницу вывести для каждого языка.

Чтобы функция включения языков в разных доменах работала, все языки должны указывать на одну и ту же установку WordPress. Для этого необходимо настроить DNS и Apache.

Если вы пытаетесь отредактировать .htaccess с целью перенаправить запросы с одного домена к другому, вы на ошибочном пути. Есть только одна копия установленной WordPress, поэтому не к чему направлять запросы.

1) Настройка DNS

Во-первых, необходимо зарегистрировать все домены или поддомены для разных языков. Эта процедура зависит от панели управления вашим хостом, но конечный результат одинаковый. Все домены должны направляться к одному веб-серверу.

Если вы пользуетесь локальным сайтом (localhost) и хотите проверить данную конфигурацию, необходимо изменить файл «hosts» и добавить записи для разных доменов.

Обычно локальный адрес сервера – 127.0.0.1, поэтому для проверки доменов вида es.local и de.local добавьте следующее в свой файл hosts:

127.0.0.1  es.local
127.0.0.1  de.local

На ПК с ОС Linux файл hosts расположен в /etc/hosts. В Windows он обычно находится в C:WINDOWSsystem32driversetchosts.

2) Настройка веб-сервера

В нашем примере мы будем использовать Apache и объясним, как выглядят файлы конфигурации. У вашего сервера может быть панель управления поверх Apache с приятными графическими элементами управления файлами конфигурации Apache. Если вам не удается определить, как внедрить указанное ниже с помощью панели управления, вы можете скопировать пример отсюда и попросить своего поставщика веб-размещения сделать это.

Самый простой способ – использование отдельных записей виртуального хоста для всех доменов и инструкций ServerAlias, чтобы Apache отвечал на запросы к разным доменам с одним и тем же виртуальным хостом.

Например:

<VirtualHost *>
  DocumentRoot /your_wp_install_directory/wordpress
  ServerName www.english-domain.com
  ServerAlias www.french-domain.fr

  ... your other stuff here ...
</VirtualHost>

Таким образом Apache получит данные о том, что единственная установка WordPress отвечает на запросы от www.english-domain.com и www.french-domain.fr. Нет никакого значения, являются ли они абсолютно разными доменами или поддоменами.

Если вы не знаете, как настроить ServerAlias (псевдоним сервера) в файле виртуального хоста (возможно, из-за того, что у вас нет прямого доступа к нему), можно настроить два раздела VirtualHost (виртуального хоста), которые будут указывать на один и тот же DocumentRoot (корень документа, путь к установленному WordPress), но с разными значениями ServerName (имя сервера).

Эти настройки можно проверить даже без WPML (рекомендуется). Перейдите к обоим доменам и проверьте, можете ли вы открыть свой сайт WordPress.

Примечание: Многие поставщики веб-размещения не разрешают непосредственного изменения файла конфигурации Apache. Вместо этого можно попробовать создать дополнительные домены cPanel, указывающие на одну и ту же физическую установку WordPress.

3) Определение использования разных языков в доменах в WPML

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

Перейдите в WPML->Языки. Затем выберите «Отдельный домен для каждого языка«. WPML попросит указать домены для каждого из языков. Введите их, проверьте и сохраните.

Языки по доменам в WPML

Значения полей языков по умолчанию, которые задает WPML, имеют вид поддоменов с именами языковых стандартов. Их можно заменить на действительные имена доменов.


Поддержка нескольких сайтов

В данном разделе Вопросы и ответы описаны шаги, необходимые для настройки языков в доменах для установки WordPress для одного сайта.

Также можно использовать языки в доменах в многосайтовом режиме, выполнив дополнительные настройки. Для этого следуйте указаниям для настройки языков в доменах в многосайтовом режиме.