Нежелательный 301-редирект для нового VirtualHost для поддомена

Нежелательный 301-редирект для нового VirtualHost для поддомена

За последние 3 года у меня было 2 копии моего сайта Wordpress. Одна на www.domain.com и одна на dev.domain.com. Я пытаюсь добавить третью сегодня. Кажется, все достаточно просто! Я прохожу все простые шаги настройки, и как только я включаю сайт, он 301 направляет меня на сайт www. Я не знаю, как устранить неполадки, вызывающие 301. Это где-то в Apache или в Wordpress? Все, что я знаю, это то, что я копирую всю конфигурацию для сайта dev и меняю имена поддоменов и каталогов, где это применимо. Кажется, этого должно быть достаточно. Мои действия:

  1. Откройте dev2.domain.com в браузере и увидите страницу Apache2 по умолчанию.
  2. Копировать исходную папку для /dev.domain.com -> /dev2.domain.com
  3. Копировать /etc/apache2/sites-available/dev.domain.com.conf -> dev2.domain.com.conf
  4. Выполните: sudo a2ensite dev2.domain.com.conf
  5. Выполните: sudo service apache2 reload (и/или restart — я пробовал оба варианта)
  6. Откройте dev2.domain.com и получите 301-перенаправление на www.domain.com

Есть ли способ окончательно выяснить, что вызывает 301? Самое запутанное, что я создаю этот новый сайт на поддомене, копируя существующий сайт, работающий на поддомене. Я просто не могу понять, в чем разница между ними.

Обязательная информация о конфигурации...

Идентичный .htaccess в корневом каталоге всех 3 сайтов (www, dev и dev2):

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
Options +Indexes
IndexOptions -FancyIndexing

конфигурация сайтов, доступных для dev.domain.com...

<VirtualHost *:80>
    ServerName dev.domain.com
    ServerAdmin [email protected]

    DocumentRoot /srv/dev.domain.com

    <Directory />
        Options All
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /srv/dev.domain.com/logs/error.log
    CustomLog /srv/dev.domain.com/logs/access.log combined
</VirtualHost>

конфигурация сайтов, доступных для dev2.domain.com...

<VirtualHost *:80>
    ServerName dev2.domain.com
    ServerAdmin [email protected]

    DocumentRoot /srv/dev2.domain.com

    <Directory />
        Options All
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /srv/dev2.domain.com/logs/error.log
    CustomLog /srv/dev2.domain.com/logs/access.log combined
</VirtualHost>

Конфигурация DNS в AWS Route53...

domain.com       A  12.34.567.89
dev.domain.com   A  12.34.567.89
dev2.domain.com  A  12.34.567.89
www.domain.com   CNAME  domain.com

Думаю, больше всего меня зацепили две вещи:

  1. Конфигурация Apache между dev и dev2казатьсябыть идентичными, за исключением замены "dev" на "dev2" везде, где это применимо

  2. Когда сайт отключен в apache, он не перенаправляется. Перенаправление происходит только после включения сайта. Означает ли это, что это Wordpress?

решение1

Все ваши настройки Apache верны; ваша проблема, скорее всего, является результатом сохранения домена в базе данных Wordpress. По умолчанию Wordpress сохраняет базовый URL в таблице wp_options как для домашней страницы, так и для URL сайта. Кроме того, он сохраняет полностью определенный домен во всех индивидуальных GUID постов/страниц в таблице wp_posts.

Варианты поиска и замены домена:

  • Самый быстрый способ: экспортируйте базу данных MySQL, откройте дамп базы данных MySQL в текстовом редакторе и выполните глобальный поиск (для domain.com или dev.domain.com) и замените на (dev2.domain.com), выполните повторный импорт.
  • используйте SQL-запрос для поиска и замены всех экземпляров старого домена новым поддоменом.

Дополнительную информацию о переносе сайта Wordpress с одного домена на другой см. в разделе «Изменение доменного имени и URL-адресов» на веб-сайтеПеремещение страницы Wordpress Codex

Связанный контент