サブドメインの新しい仮想ホストに対する不要な 301 リダイレクト

サブドメインの新しい仮想ホストに対する不要な 301 リダイレクト

過去 3 年間、Wordpress Web サイトのコピーを 2 つ持っていました。1 つは www.domain.com、もう 1 つは dev.domain.com です。今日、3 つ目を追加しようとしています。簡単そうです! 簡単なセットアップ手順をすべて実行し、サイトを有効にするとすぐに 301 で www サイトにリダイレクトされます。301 をトリガーしている原因をトラブルシューティングする方法がわかりません。Apache または Wordpress のどこかにあるのでしょうか? わかっているのは、開発サイトのすべての構成をコピーし、該当する場合はサブドメインとディレクトリ名を変更していることだけです。これで十分なようです。手順は次のとおりです。

  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 の原因を明確に把握する方法はありますか? 最も混乱しているのは、サブドメインで実行されている既存のサイトをコピーして、サブドメインにこの新しいサイトを立ち上げていることです。この 2 つの違いが何なのか、まったくわかりません。

必須の構成情報...

3 つのサイト (www、dev、dev2) のルート ディレクトリに同一の .htaccess があります。

# 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 の sites-available 構成...

<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 の sites-available 構成...

<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>

AWS Route53 での DNS 構成...

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

私が最も困っているのは、次の 2 つの点だと思います。

  1. devとdev2間のApache設定思われる該当する箇所で「dev」を「dev2」に変更する以外は同一である

  2. サイトが Apache で無効になっている場合、リダイレクトされません。リダイレクトは、サイトが有効になったときにのみ発生します。これは Wordpress であることを意味しますか?

答え1

Apache の設定はすべて正確です。問題はおそらく、ドメインが Wordpress データベースに保存されていることが原因です。デフォルトでは、Wordpress はホームページとサイト URL の両方のベース URL を wp_options テーブルに保存します。さらに、wp_posts テーブルのすべての個別の投稿/ページ GUID に完全修飾ドメインを保存します。

ドメインを検索して置換するためのオプション:

  • 最も速い方法: mysql データベースをエクスポートし、mysql データベース ダンプをテキスト エディターで開き、グローバル検索 (domain.com または dev.domain.com) を実行して (dev2.domain.com) に置き換え、再インポートします。
  • SQL クエリを使用して、古いドメインのすべてのインスタンスを検索し、新しいサブドメインに置き換えます。

WordPressサイトをあるドメインから別のドメインに移行する方法の詳細については、「ドメイン名とURLの変更」セクションを参照してください。Wordpress Codex ページの移動

関連情報