Не работают поддомены в Multisite
Это мой первый опыт с WordPress Multisite, и я следовал всем инструкциям из Codex, чтобы сделать мой сайт мультисайтом.
Но мои поддомены не работают, и Chrome отображает это сообщение для моих поддоменов:
Не удалось найти DNS-адрес.
Нужно ли каждый раз создавать поддомен в cPanel перед созданием нового сайта (поддомена) в WordPress?
У меня уже есть несколько поддоменов, которые работают идеально, но это отдельные сайты. Теперь я сделал основной домен мультисайтом, но все поддомены не работают.
Вот мой код .htaccess, который предоставил WordPress:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# добавить слеш в конце для /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
Я также добавил код в файл wp-config, который предоставил WordPress, и могу войти в панель сети и создавать поддомены, но когда я пытаюсь посетить любой из поддоменов, появляется ошибка DNS. Буду очень благодарен, если кто-нибудь подскажет решение этой проблемы. Спасибо!

Нужно ли каждый раз создавать поддомен в cPanel перед созданием нового сайта (поддомена) в WordPress?
Вам необходимо убедиться, что поддомены созданы где-то. WordPress не имеет возможности создавать DNS-записи за вас.
Если у вас настроен WordPress на example.com
и вы хотите создать site1.example.com
, site2.example.com
и т.д., вам нужно убедиться, что DNS-записи для site1.example.com
, site2.example.com
и т.д. активны.
В зависимости от вашего хостинга, у вас может быть возможность создать wildcard поддомены, что означает добавление записи *.example.com
в ваши DNS-записи. Это позволит перенаправлять любой поддомен, оканчивающийся на .example.com
, на вашу Multisite-установку. Однако вам нужно уточнить эту возможность у вашего хостинг-провайдера, мы не можем предоставить конкретные инструкции по этому вопросу.

Спасибо за ваш ответ. Но я уже пытался создать поддомен в своем аккаунте перед тем как сделать это в WordPress, однако при посещении он указывает на пустую директорию (Index of /cgi-bin/). Как я уже упоминал, у меня уже есть несколько поддоменных сайтов на хостинге, но это отдельные сайты, и они работают идеально, значит мой хостинг позволяет создавать поддомены.

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

Для моего поддомена путь указан как public_html/site1. Должен ли это быть просто public_html или мне нужно указать полный путь? Мой основной сайт установлен в корневой директории.

Теперь всё работает. Раньше я указывал этот поддомен на public_html/site1, и когда я убрал site1 из пути поддомена, всё начало работать идеально. Большое спасибо за вашу помощь и время. Я очень признателен и собираюсь проголосовать за ваш ответ и принять его.

Добавляю немного больше информации в эту тему, надеясь, что это будет полезно кому-то еще в будущем...
При создании поддомена в cPanel установите галочку "share document root", чтобы использовать корневую папку /public_html, а не создавать отдельную папку за ее пределами.
Я обнаружил, что это самый простой способ решения данной проблемы, и теоретически он должен работать у большинства хостинг-провайдеров.

Спасибо за ваш ответ, wplearner и Pat J — это помогло мне решить мою проблему. Я столкнулся с тем, что после перевода WordPress на мультисайт с использованием поддоменов мой основной сайт работал (mainsite.com), а training.example.com — нет. Вместо этого я получал страницу с ошибкой «Internal Server Error».
Решение:
- Я зашел в CPanel → Поддомены.
- Добавил поддомен training.example.com и указал его корневой директорией /public-html/.
- В разделе «Управление поддоменами» я нажал на «Настройки перенаправления» и установил перенаправление на https://example.com (у меня используется SSL, поэтому, если у вас его нет, можно указать http://example.com), затем сохранил изменения.
- Вернулся в админку WordPress, перешел в «Мои сайты», выбрал второй сайт — и всё заработало! ОГРОМНОЕ СПАСИБО!
