Несколько доменов и поддоменов на одном IP Apache2

У меня два виртуальных хоста на одном IP, www.example.com и www.example2.com. По умолчанию example.com имеет поддомен docs.example.com, который работает нормально, а также имеет сертификат SSL и принудительно использует https на example.com.

Когда я пытаюсь настроить поддомен во втором домене, то есть blog.example2.com (wordpress), он перенаправляет обратно на первый домен, https://www.example.com . Хотя www.example2.com работает нормально.

Можно ли иметь поддомены для двух сайтов на одном IP? Или у вас могут быть только поддомены по умолчанию? Есть ли способ заставить субдомен на example2 работать?

Файлы конфигурации:

000-default.conf

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    ...
    DocumentRoot /var/www/example.com/public_html
</VirtualHost>

example.com.conf

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    ...
    DocumentRoot /var/www/example.com/public_html
</VirtualHost>
<IfModule mod_ssl.c>
    ... certificates set up etc.
</IfModule>

docs.example.com.conf

<VirtualHost *:80>
    ServerName docs.example.com
    ...
    DocumentRoot /var/www/docs.example.com/public_html
</VirtualHost>

example2.com .conf

<VirtualHost *:80>
    ServerName www.example2.com
    ServerAlias example2.com
    ...
    DocumentRoot /var/www/example2.com/public_html
</VirtualHost>

blog.example2.com. conf

<VirtualHost *:80>
    ServerName blog.example2.com <-- redirects back to https://www.example.com
    ...
    DocumentRoot /var/www/blog.example2.com/public_html
</VirtualHost>
0
задан 4 November 2017 в 03:02
1 ответ

Чтобы ответить на ваши непосредственные вопросы:

  1. Можно ли иметь поддомены для двух сайтов на одном IP? Или у вас могут быть только поддомены по умолчанию?

Да, у вас может быть несколько поддоменов и доменов верхнего уровня на одном IP. Ваши vhosts, как было опубликовано, выглядят настроенными правильно.

  1. Есть ли способ заставить работать поддомен на example2?

Я подозреваю, что перенаправление происходит либо из-за того, что apache не видит / не загружает файл vhost blog.example2.com, либо из-за проблемы конфигурации Wordpress:

  • Apache пропустит загрузку любых недопустимых файлов vhost и вернется к определенному домену в 000-default.conf. Если вы используете Apache2, вам может потребоваться проверить папку / etc / apache2 / sites-enabled, чтобы убедиться, что blog.example2.com.conf включен и загружается. Кроме того, не забудьте перезапустить Apache, если вы изменили или добавили файл vhost.

  • Первоначально настроенный сайт Wordpress отражает домен example.com.Wordpress сохраняет абсолютные URL-адреса для своих GUID в таблице wp_posts, а для домена сайта (url) и URL-адреса домашней страницы в таблице wp_options своей базы данных. Возможно, вам потребуется выполнить поиск и замену, чтобы обновить домен в базе данных. Это можно сделать напрямую через SQL-запрос или с помощью инструмента WP-CLI. Оба метода содержатся в ответах на https://wordpress.stackexchange.com/questions/7693/what-sql-query-to-do-a-simple-find-and-replace

  • Иногда разработчики могут переопределите и установите домен верхнего уровня (URL-адрес сайта) и URL-адрес домашней страницы в wp-config.php. Эти две настройки будут напоминать:

    define ('WP_HOME', ' http://www.example.com '); define ('WP_SITEURL', ' http://www.example.com ');

  • Файл .htaccess на сайте Wordpress имеет правило перенаправления, указывающее на www.example.com

И последнее. примечание: убедитесь, что ваш виртуальный хост для сайта / поддомена Wordpress поддерживает .htaccess. Должен быть блок вроде:

<Directory "/var/www/blog.example2.com/public_html">
    Options FollowSymLinks
    AllowOverride All

    Order allow,deny
    Allow from all
</Directory>
1
ответ дан 4 December 2019 в 16:06

Теги

Похожие вопросы