Unerwünschte 301-Weiterleitung für neuen VirtualHost für Subdomain

Unerwünschte 301-Weiterleitung für neuen VirtualHost für Subdomain

In den letzten drei Jahren hatte ich zwei Kopien meiner Wordpress-Website. Eine unter www.domain.com und eine unter dev.domain.com. Ich versuche heute, eine dritte hinzuzufügen. Scheint ganz einfach zu sein! Ich gehe alle einfachen Einrichtungsschritte durch und sobald ich die Site aktiviere, werde ich per 301 auf die www-Site weitergeleitet. Ich weiß nicht, wie ich den Auslöser für die 301-Weiterleitung beheben kann. Liegt es irgendwo in Apache oder in Wordpress? Ich weiß nur, dass ich die gesamte Konfiguration für die Dev-Site kopiere und die Subdomain- und Verzeichnisnamen ändere, wo immer dies möglich ist. Das sollte wohl ausreichen. Meine Schritte:

  1. Öffnen Sie dev2.domain.com in einem Browser und sehen Sie sich die Standardseite von Apache2 an
  2. Quellordner für /dev.domain.com -> /dev2.domain.com kopieren
  3. Kopieren Sie /etc/apache2/sites-available/dev.domain.com.conf -> dev2.domain.com.conf
  4. Ausführen: sudo a2ensite dev2.domain.com.conf
  5. Ausführen: sudo service apache2 reload (und/oder Neustart – ich habe beides versucht)
  6. Öffnen Sie dev2.domain.com und erhalten Sie eine 301-Weiterleitung zu www.domain.com

Gibt es eine Möglichkeit, definitiv herauszufinden, was die 301-Weiterleitung verursacht? Am verwirrendsten ist, dass ich diese neue Site auf einer Subdomain einrichte, indem ich eine vorhandene Site kopiere, die auf einer Subdomain läuft. Ich kann einfach nicht herausfinden, was der Unterschied zwischen den beiden ist.

Obligatorische Konfigurationsinformationen ...

Identische .htaccess im Stammverzeichnis aller 3 Sites (www, dev und 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

Sites-Available-Konfiguration für 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>

Sites-Available-Konfiguration für 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-Konfiguration in 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

Ich schätze, die zwei Dinge, an denen ich am meisten festhänge:

  1. Die Apache-Konfiguration zwischen dev und dev2erscheinenidentisch sein, außer dass „dev“ -> „dev2“ geändert wird, wo immer dies möglich ist

  2. Wenn die Site in Apache deaktiviert ist, wird sie nicht umgeleitet. Die Umleitung erfolgt erst, wenn die Site aktiviert ist. Bedeutet das, dass es Wordpress ist?

Antwort1

Ihre Apache-Einstellungen sind alle korrekt. Ihr Problem ist höchstwahrscheinlich darauf zurückzuführen, dass die Domäne in der Wordpress-Datenbank gespeichert ist. Standardmäßig speichert Wordpress die Basis-URL sowohl für die Homepage als auch für die Site-URL in der Tabelle wp_options. Darüber hinaus speichert es die vollqualifizierte Domäne in allen einzelnen Post-/Seiten-GUIDs in der Tabelle wp_posts.

Optionen zum Suchen und Ersetzen der Domäne:

  • am schnellsten: Exportieren Sie die MySQL-Datenbank, öffnen Sie den MySQL-Datenbank-Dump in einem Texteditor, führen Sie eine globale Suche durch (für domain.com oder dev.domain.com) und ersetzen Sie sie durch (dev2.domain.com), importieren Sie sie erneut.
  • Verwenden Sie eine SQL-Abfrage, um alle Instanzen der alten Domäne zu suchen und durch die neue Subdomäne zu ersetzen.

Weitere Informationen zur Migration einer Wordpress-Site von einer Domain zu einer anderen finden Sie im Abschnitt „Ändern Ihres Domainnamens und Ihrer URLs“ auf derWordpress Codex-Seite verschieben

verwandte Informationen