Как правильно настроить несколько доменов в мультисайтовой установке WordPress 4.1?
Я ознакомился с этим вопросом и другими, но не нашел четкого ответа, как правильно настроить домен в мультисайте, чтобы варианты с www и без www работали корректно. Я считаю, что правильно настроил wildcard-записи на уровне DNS, и предложенное решение добавить define( 'NOBLOGREDIRECT', 'http://www.example.com' );
работает для основного сайта, но не для других сетей в той же установке.
Я использую плагин 'WP Multi Network' на основе некоторых исследований, которые привели меня к выводу, что если я запускаю несколько доменов на одной установке WordPress, мне следует использовать несколько сетей, а не просто мультисайт. Мои сети и сайты добавлены с включением www
в поле домена.
Так как же правильно настроить перенаправление доменов без www
в мультисайтовой установке? Требуются ли плагины? Должно ли это все настраиваться в конфигурации веб-сервера с помощью rewrite-правил?

WordPress Multisite по умолчанию поддерживает работу с разными доменами, но НЕ с алиас-доменами. Настройки каждого сайта хранят информацию о домене. В стандартной установке используется структура поддоменов или папок. Однако вы можете добавить отдельный домен.
Скриншоты
Например, первые два сайта используют один и тот же домен (стандартный из установки), а третий сайт работает с другим доменом, внешним по отношению к стандартному. Последний — это совершенно другой домен. Для этого не требуются плагины или кастомный код для маппинга доменов.
Вот скриншот настроек последнего сайта с отдельным доменом:
Если вы хотите уменьшить проверку кук при каждом входе, добавьте следующую константу в файл wp-config.php
:
define( 'COOKIE_DOMAIN', '' );
Иначе WordPress всегда будет устанавливать её в значение $current_site->domain
вашей сети, что может вызвать проблемы в некоторых ситуациях.
Маппинг доменов с алиасами
Если вам требуется более глубокая кастомизация, например, маппинг алиасов на домены, вам могут помочь плагины. Ядро WordPress планирует добавить поддержку Domain Alias Mapping в будущем, но пока вы можете воспользоваться одним из следующих плагинов:
- Mercator — современный маппинг доменов для WordPress Multisite
- WordPress MU Domain Mapping — подключение любого сайта в сети WordPressMU или WordPress 3.X к внешнему домену
WWW vs Non-WWW
У меня нет достаточных знаний о работе с Non-WWW и WWW URL в этом контексте, но я думаю, что этот случай немного отличается. Домен вида www.test.com содержит поддомен www. Но www является синонимом веба и часто не интерпретируется как поддомен. Для всех своих клиентов я делаю редирект с WWW на Non-WWW.
Подсказка по созданию нового сайта
В процессе создания нового сайта невозможно указать внешний домен в поле ввода. Добавьте случайное значение, а после создания сайта используйте функцию редактирования, чтобы добавить внешний домен.

Спасибо за это. Вы имеете в виду, что для своих клиентов вы делаете редиректы на уровне веб-сервера, то есть до того, как запрос достигнет WordPress?

Нет, это только настройки на стороне клиента, в настройках Multisite-установки.

Я имею в виду ваше последнее предложение "Для всех моих клиентов делаю редирект с WWW-адреса на Non-WWW."

OK. Да, это настройки управления доменом и веб-пространством. Но также я добавил правила в .htaccess
установки.

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

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

@bueltge Я согласна. Если у тебя будет время, я была бы рада обновлению этой информации после выхода WP 4.6. У нас есть планы перестать использовать плагин для маппинга доменов и перейти на встроенные функции, но подождем этого релиза, прежде чем двигаться дальше. В любом случае, спасибо за отличный ответ.
