Weiterleitung mit/ohne www einrichten

Inhalt

Achtung! Denke daran, in den Code-Beispielen dieses Artikels example.com und example\.com mit deiner eigenen Domain zu erstetzen!

Weiterleitung www → nicht-www

Falls du ein Problem bei der Weiterleitung deiner URLs ohne www auf die www-Version feststellst, kannst du das mit dem folgenden MU-Plugin lösen:

Eigenes MU Plugin

Folge den allgemeinen Anweisungen in diesem Artikel:
Eigenes (MU-)Plugin für Anpassungen erstellen

1
Lege einen neuen Ordner mu-plugins innerhalb von wp-content an.
Falls der Ordner mu-plugins dort schon existiert, verwende den existierenden.
2
Lege eine neue Datei an und speichere die folgenden Code-Zeilen darin. Nutze dafür einen Code- oder Texteditor:
<?php
defined( 'ABSPATH' ) or die( 'Cheatin&#8217; uh?' );
/**
 * Plugin Name: WP Rocket | Fix non-www to www redirection
 * Description: Fixes redirection from non-www to www URLs.
 * Author:      your name here
 * License:     GNU General Public License v3 or later
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 */
add_filter( 'before_rocket_htaccess_rules', '__fix_wprocket_non_www_redirection' );
function __fix_wprocket_non_www_redirection( $marker ) {
	$redirection = '# Redirect non-www to www' . PHP_EOL;
	$redirection .= 'RewriteEngine On' . PHP_EOL;
	$redirection .= 'RewriteCond %{HTTP_HOST} ^example\.com [NC]' . PHP_EOL;
	$redirection .= 'RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]' . PHP_EOL . PHP_EOL;
	$marker = $redirection . $marker;
	return $marker;
}
	
3
Speichere die Datei unter einem beliebigen Namen, aber nutze ausschließlich lateinische Kleinbuchstaben, Ziffern, oder Bindestriche im Dateinamen. Zum Beispiel:
wp-rocket-non-www-fix.php
4
Lade die Datei in den Ordner mu-plugins aus Schritt 1 hoch.
5
Zuletzt deaktiviere und re-aktiviere WP Rocket einmal.

Vom Theme aus

Füge den folgenden Code-Schnipsel in die functions.php deines Child-Themes oder eigenen Themes ein:

add_filter( 'before_rocket_htaccess_rules', '__fix_wprocket_non_www_redirection' );
function __fix_wprocket_non_www_redirection( $marker ) {
	$redirection = '# Redirect non-www to www' . PHP_EOL;
	$redirection .= 'RewriteEngine On' . PHP_EOL;
	$redirection .= 'RewriteCond %{HTTP_HOST} ^example\.com [NC]' . PHP_EOL;
	$redirection .= 'RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]' . PHP_EOL . PHP_EOL;
	$marker = $redirection . $marker;
	return $marker;
}

Denke daran, WP Rocket einmal zu deaktivieren und wieder zu re-aktivieren, sobald du den Code hinzugefügt hast.

Weiterleitung nicht-www → www

Falls du die entgegengesetzte Regel (www zu nicht-www) benötigst, nutze diesen Code in deinem MU-Plugin:

<?php
defined( 'ABSPATH' ) or die( 'Cheatin&#8217; uh?' );
/**
 * Plugin Name: WP Rocket | Fix www to non-www redirection
 * Description: Fixes redirection from www to non-www URLs.
 * Author:      your name here
 * License:     GNU General Public License v3 or later
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 */
add_filter( 'before_rocket_htaccess_rules', '__fix_wprocket_non_www_redirection' );
function __fix_wprocket_non_www_redirection( $marker ) {
	$redirection = '# Redirect www to non-www' . PHP_EOL;
	$redirection .= 'RewriteEngine On' . PHP_EOL;
	$redirection .= 'RewriteCond %{HTTP_HOST} ^www.example\.com [NC]' . PHP_EOL;
	$redirection .= 'RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]' . PHP_EOL . PHP_EOL;
	$marker = $redirection . $marker;
	return $marker;
}

Oder diesen Code in deiner functions.php:

add_filter( 'before_rocket_htaccess_rules', '__fix_wprocket_non_www_redirection' );
function __fix_wprocket_non_www_redirection( $marker ) {
	$redirection = '# Redirect www to non-www' . PHP_EOL;
	$redirection .= 'RewriteEngine On' . PHP_EOL;
	$redirection .= 'RewriteCond %{HTTP_HOST} ^www.example\.com [NC]' . PHP_EOL;
	$redirection .= 'RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]' . PHP_EOL . PHP_EOL;
	$marker = $redirection . $marker;
	return $marker;
}

Denke daran, WP Rocket einmal zu deaktivieren und wieder zu re-aktivieren, sobald du den Code hinzugefügt hast.