Итак, вы хотите, чтобы на вашем сайте с WPML использовались отдельные домены для каждого языка?

У использования отдельных доменов есть другие преимущества помимо простого отображения на сайте.

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

Отдельные домены для каждого языка настроены в WPML -> страница «Языки».

Отдельные домены для каждого языка настроены в WPML -> страница «Языки».

 

Сначала подробно объясним этот механизм на практическом примере.

Например, если в WPML вам нужны английский и немецкий язык и отдельный домен на каждый из них,

существует два варианта настройки языков по доменам:

  • Отдельные домены

Это возможно, например, если у вас есть два домена – example.com для английского языка и example.de для немецкого.

example.com > Английский

example.de > Немецкий

  • Поддомены

Также можно использовать поддомены, как в примере: en.example.com – для английского языка и de.example.com для немецкого.

en.example.com > Английский

de.example.com > Немецкий

Итак, следующий важный вопрос состоит в том, как это можно сделать. Ответ на него зависит от двух основных моментов в настройке вашего сайта:

  • Ваш DNS-сервер
  • Ваш HTTP-сервер (Apache, Nginx и др.)

Настройка DNS-сервера

Настройка вручную

DNS с настройкой доменов верхнего уровня

Если у вас различные домены верхнего уровня (example.com, example.de), в них сначала необходимо добавить соответствующие достоверные DNS-серверы. Обычно это выполняется в панели настроек компании, у которой вы купили домен.

После добавления домена в вашем DNS-сервере необходимо создать запись, указывающую на ваш HTTP-сервер. Проще говоря, серверу необходимо знать, какие данные он должен предоставить пользователям, когда они находятся в определенном домене. Если они открывают домен в зоне .de, он должен открыть им немецкую версию сайта.

Если у вас свой собственный DNS-сервер, можно (лучше всего) создать «Запись» для другого домена, который указывает на ваш сервер.

Существует два возможных вида записей.

  • Запись A – указывается IP-адрес вашего сервера. Это хорошее и быстрое решение
  • Запись CNAME – указывается доменное имя вашего сервера. Это немного дольше, но удобнее, если вы часто меняете IP-адреса сервера

Список записей. Вид окна настроек доменов верхнего уровня может отличаться.

Список записей. Вид окна настроек доменов верхнего уровня может отличаться.

DNS с настройкой поддоменов

Настройка поддоменов довольно проста. Просто для DNS-сервера необходимо создать дополнительную запись A или CNAME и указать в ней такой же IP-адрес сервера HTTP / HTTPS или домен.

Вид окна настроек поддоменов может отличаться

Вид окна настроек поддоменов может отличаться

Обратите внимание, что после внесения этих настроек необходимо перейти к разделу «Настройка HTTP-сервера» данного руководства.

Настройка через панель cPanel

сPanel автоматически добавляет необходимые записи DNS и HTTP, поэтому для подготовки своего сервера вам необходимо выполнить только следующие шаги.

Настройка домена верхнего уровня

В большинстве случаев соответствующий раздел сPanel выглядит следующим образом.

домены.cpanel

Добавление дополнительных доменов возможно двумя способами:

  • Паркованный домен – для парковки дополнительного доменного имени. Этот вариант самый лучший, поскольку в нем используется такой же путь к сайту в настройках http.Экран паркованного домена
  • Дополнительный домен – в этом случае следует точно указать папку с текущей установкой WordPressЭкран дополнительного домена

После этого можно перейти в раздел «Завершающие операции» этого руководства.

сPanel создаст и добавит все настройки для вашего Apache и DNS, и все должно работать.

Настройка поддоменов

Для выполнения настроек поддоменов необходимо выбрать значок поддоменов в меню сPanel.

Чтобы использовать вариант «Отдельные домены для каждого языка» в WPML, при создании поддомена необходимо указать место установки вашего WordPress.Экран поддоменов

После этого можно перейти в раздел «Завершающие операции» этого руководства.

сPanel создаст и добавит все настройки для вашего Apache и DNS, и все должно работать.

Проверьте, чтобы все домены указывали на одну и ту же корневую папку WordPress, и тщательно проверьте конфигурацию.

Настройка HTTP-сервера

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

Чтобы настройки работали, необходимо создать запись в веб-сервере, которая будет распознавать доменное имя (или поддомен), только что добавленное со ссылкой для вашего DNS-сервера.

Если у вас свой сервер, который вы сами администрируете, это довольно легко – просто нужно добавить псевдоним сервера в текущую конфигурацию.

Ниже приведен пример настройки сервера Apache.


 DocumentRoot "/var/www/www.example.com/webroot"

  ServerName example.com

  ServerAlias example.de

...

Вот и все, что нужно сделать. Легко, правда?

Такую же настройку легко выполнить и на сервере Nginx.

server {
        server_name example.com;
        ...
}
 
server {
        server_name example.de;
        ...

Независимо от выбранного вами пути самое важное – учитывать, что все варианты конфигурации псевдонимов должны ссылаться на одну и ту же виртуальную папку с установленным WordPress.

Завершающие операции

Настроив все эти вещи, вы можете задать параметр Отдельные домены для каждого языка в WPML -> Языки. После введения необходимых данных (другого домена или поддомена) нажмите кнопку Сохранить, чтобы выполнить проверку своего домена. Проверка покажет, есть ли проблемы с доменом, и затем в случае успеха сохранит все внесенные настройки.

Отладка

Если проблемы с новой настройкой не удается решить, лучше включить отладку в WordPress. Это можно сделать, добавив следующий фрагмент кода в файл wp-config.php сайта WordPress.


// Turn debugging on

define('WP_DEBUG', true);



// Tell WordPress to log everything to /wp-content/debug.log

define('WP_DEBUG_LOG', true);



// Turn off the display of error messages on your site

define('WP_DEBUG_DISPLAY', false);



// For good measure, you can also add the follow code, which will hide errors from being displayed on-screen

@ini_set('display_errors', 0);

Затем необходимо следить за файлом журнала в /wp-content/debug.log, который будет создан при сохранении параметров домена в WPML.

Также можно следить за откликами admin-ajax.php в консоли браузера (нажмите F12 на клавиатуре, чтобы она отобразилась). Учитывая данные из консоли и журнала ../wp-content/debug.log, можно отключать некритичные плагины WordPress, чтобы попытаться найти причину проблемы.Пример консоли браузера

Если у вас есть вопросы, лучше обратиться к одному из наших специалистов на форумах WPML.


 

Джордж Ботсев

Джордж Ботсев

Я помешан на компьютерах, обожаю «Звездный путь» и другие подобные вещи. Мои другие увлечения, в основном, это ИТ, системное администрирование, электроника, программное и аппаратное обеспечение с открытым исходным кодом, фотографирование и музыка.

Вот уже более 10 лет я работаю с WordPress, а также имею около 10 лет профессионального опыта в области ИТ и системного администрирования.

Моя основная задача – исправление ошибок, и начиная с сентября 2014 года я присоединился к группе поддержки WPML и помогаю некоторым из вас на форумах решать проблемы.