Fehlerbehebung
In cPanel eingerichtete Weiterleitung funktioniert nicht
cPanel speichert Weiterleitungen als Regeln in der .htaccess. Stehen sie hinter einem Block, der die Anfrage bereits verarbeitet, werden sie für manche Pfade möglicherweise nie erreicht. Prüfen Sie die erzeugte Datei, bevor Sie die Reihenfolge ändern.
Dass es Regeln von WordPress oder Joomla gibt, beweist noch keinen Konflikt. Testen Sie zuerst die URL mit curl -I, prüfen Sie den Code und den Header Location, kontrollieren Sie den Eintrag unter Current Redirects und öffnen Sie die .htaccess im richtigen DocumentRoot.
Wenn Antwort und Reihenfolge zeigen, dass ein Block der Anwendung die Anfrage verarbeitet, bevor sie die Weiterleitung erreicht, verschieben Sie nur die betroffene Regel vor diesen Block. Erstellen Sie eine Sicherungskopie und respektieren Sie die Blöcke, die von WordPress, LiteSpeed, Plugins und Sicherheitswerkzeugen verwaltet werden.
Eine Weiterleitung hinter dem WordPress-Block wird zum Beispiel für Pfade, die dieser Block an index.php übergibt, möglicherweise nicht ausgeführt:
# 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 RewriteCond %{HTTP_HOST} ^antiguo\.ejemplo(?::[0-9]+)?$ [NC] RewriteCond %{THE_REQUEST} \s/+([^?\s]*) RewriteRule ^ https://nuevo.ejemplo/%1 [R=301,L,NE]
Wenn Sie dieses Abfangen bestätigt haben, setzen Sie die Weiterleitung außerhalb des verwalteten Blocks und vor ihn:
RewriteEngine On RewriteCond %{HTTP_HOST} ^antiguo\.ejemplo(?::[0-9]+)?$ [NC] RewriteCond %{THE_REQUEST} \s/+([^?\s]*) RewriteRule ^ https://nuevo.ejemplo/%1 [R=301,L,NE] # 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
RewriteEngine On muss in diesem Kontext vor den Regeln stehen, die es benötigen, aber nicht zwingend in der ersten Zeile der Datei. Um HTTPS zu erzwingen, verwenden Sie vorzugsweise cPanel > Domains > Force HTTPS Redirect, statt eine manuelle Weiterleitung anzulegen.
Die Domains im Beispiel sind Platzhalter: Ersetzen Sie Quelle und Ziel durch Ihre eigenen. Die Host-Bedingung beschränkt die Regel auf die alte Domain; der aus der ursprünglichen Anfrage übernommene Pfad behält seine kodierten Zeichen, und der Query-String bleibt erhalten. Fügen Sie NE nicht zu anderen Regeln hinzu, ohne zu prüfen, wie diese ihr Ziel zusammensetzen.
Testen Sie die Startseite, einen internen Pfad, einen Pfad mit Umlauten oder kodierten Zeichen und einen mit Parametern. Prüfen Sie auch, dass die neue Domain nicht in eine Schleife gerät. Bevor Sie die Änderung als dauerhafte 301 festlegen, können Sie in einem kontrollierten Test 302 verwenden; bestätigen Sie die Antwort danach, ohne sich auf eine vom Browser gespeicherte Weiterleitung zu verlassen. Liefert curl -I ein anderes Ergebnis als der Browser, vergleichen Sie mit einer GET-Anfrage: Nicht alle Anwendungen antworten auf HEAD gleich.
Das könnte Ihnen auch helfen
- Verbreitung von DNS- und IP-Änderungen bei Domains prüfen Prüfen Sie nach der Änderung einer IP, eines MX oder eines anderen Eintrags zuerst die autoritativen...
- Die Domain zeigt eine andere Website, falsche Inhalte oder leitet auf eine andere Domain weiter Finden Sie heraus, warum eine Domain eine andere Website öffnet, indem Sie DNS, Dokumentstamm, Weite...
- 404-Fehler bei statischen Dateien verlangsamen die Website Erkennen Sie fehlende statische Ressourcen, die PHP starten und CPU verbrauchen, liefern Sie sie als...
- 500 Internal Server Error Diagnostizieren Sie einen 500-Fehler anhand der Anfrage und des Protokolls desselben Zeitpunkts, bev...
Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.