Es kommt vor, dass bei einer WordPress-Seite die Domain oder das Protokoll (http/https) geändert werden muss. Dies geschieht dann, wenn man die Domain austauscht, von einer Testumgebung auf eine Liveumgebung wechselt oder die SSL-Verschlüsselung verwendet.
Zunächst fügen wir immer folgenden Schnipsel ein, damit eine WordPress-Instanz immer von der aufgerufenen Url erreichbar ist und nicht auf die alte Url weiterleitet.
/* Custom WordPress-Urls */ define( 'SP_REQUEST_URL', ( $_SERVER['HTTPS'] ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] ); define( 'WP_SITEURL', SP_REQUEST_URL ); define( 'WP_HOME', SP_REQUEST_URL ); define( 'SP_PATH', dirname( __FILE__ ) . '/' );
Hiermit wird immer in die beiden Einstellungsfelder automatisch die Url eingesetzt mit der WordPress aufgerufen wird. Da dies aus SEO-Sicht zu Problemen führen kann, da die Webseite über mehrere Urls erreichbar ist, sollte man immer die Weiterleitung in der htaccess dementsprechend setzen.
<IfModule mod_rewrite.c>
RewriteEngine On
# RewriteBase /
# Check protokoll
RewriteCond %{HTTPS} =on
RewriteRule ^ - [env=proto:https]
RewriteCond %{HTTPS} !=on
RewriteRule ^ - [env=proto:http]
# Rewrite to SSL and www at once
# RewriteCond %{HTTPS} off [OR]
# RewriteCond %{HTTP_HOST} !^www\. [NC]
# RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
# RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]
# Rewrite to SSL and without www at once
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
</If>
Je nachdem, ob „www.“ vor der Domain verwendet wird oder nicht muss eine Version auskommentiert werden (# am Zeilenanfang). In dieser Version wird davon ausgegangen dass SSL-Verschlüsselung verwendet wird.
Hat man dies geschafft, muss man nur noch in der gesamten Datenbank alle URL-Vorkomnisse suchen und ersetzen. Dies macht man am Besten mit einem Plugin wie Better Search Replace. Hier ist es wichtig, dass man die gesamte Url sucht und ersetzt: https://www.domain.de und darauf achtet, dass man bei beiden den gleichen Teil sucht und ersetzt, also beide mal ohne schließenden /.
Außerdem sollte der installierte Pagebuilder ebenfalls eine Tool zum Suchen und Ersetzten haben, wie z.B. Elementor, muss dieses zusätzlich ausgeführt werden.