Wer in seiner Blog- oder Webseiten-Domain noch das Unterverzeichnis stehen hat, möchte dies gerne loswerden. Das ist leider gar nicht so einfach, wenn man nur Zugriff auf das WP-Dashboard hat. Hier muss tiefer eingegriffen werden, da es sich mehr oder weniger um einen Umzug der WordPress-Domain handelt.
Inhaltsverzeichnis:
Wieso steht bei meiner WordPress-Webseite /wordpress?
Dieses Problem haben leider sehr viele WordPress-Webseitenbetreiber. Bei der Erstellung der Site wurde die Domain beim Webhoster meist auf das / (root) gesetzt. Dort wurde dann ein Unterordner angelegt /wordpress und in diesen die WP-Webseite installiert. Der Aufruf geschieht dann automatisch über www.domain.de/wordpress. Das sieht unschön aus und hat Nachteile für SEO, weil die URL Struktur mit einem sinnlosen Füllwort verlängert wird.
Wie werde ich das Unterverzeichnis /wordpress also los?
Hierzu benötigt man auf jeden Fall FTP Zugriff und Zugriff auf die MySQL-Datenbank. Man muss folgende Schritte erledigen:
- Datenbank migrieren
- .htaccess anpassen
- Domain umleiten auf das Unterverzeichnis
- ggfs. noch die Website-URL über die wp-config.php anpassen
Datenbank migrieren
WordPress speichert in seiner Datenbank die Website-Adresse (in unserem Fall also die www.domain.de/wordpress) als serialisierten String ab. D.h. ein einfaches Suchen&Ersetzen funktioniert unter Umständen nicht. Daher sollte man die Datenbank mit einem Plugin migrieren wie WP Migrate DB Pro . Hier sucht man (siehe Screenshot) nach Einträgen der Domain mit dem Unterverzeichnis und ersetzt diese durch die Domain ohne den Anhang. Übrigens bleibt beim Migrieren der DB der absolute Pfad gleich. Daher muss hier nichts unternommen werden.
Das Plugin erstellt eine Migrationsdatei, die dann über die Datenbankverwaltung (PHPMyAdmin) wieder importiert wird. Am besten man sichert vorher nochmal die Original-Datenbank für den Fall der Fälle.
.htaccess anpassen
Danach muss die .htaccess-Datei angepasst werden. Dort sind Direktiven angegeben, die auf das Unterverzeichnis verweisen. Diese Direktive lautet:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L] </IfModule> # END WordPress
Sie muss ersetzt werden durch
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Umleiten der Domain auf das Unterverzeichnis
Anschließend muss natürlich die Domain auf das Unterverzeichnis geleitet werden. Das macht man im Dashboard des Webhosters (Strato, 1&1, All-Inkl, …). Dort ist aktuell die Domain auf / gelegt und muss dann auf /wordpress gemapped werden. Das klingt etwas unsinnig, ist aber eigentlich schlüssig: Der Startort der Domain ist das Unterverzeichnis und muss es auch sein, da ansonsten der Aufruf über www.domain.de immer eine Ebene im Verzeichnisbaum vor /wordpress landet. Daher stellt man die Domain direkt auf /wordpress.
Site_URL anpassen
Zum Schluss kann man noch auf Nummer sicher gehen und die Site URL fest in der wp-config.php angeben. Dadurch wird festgelegt, dass die aufrufende Domain www.domain.de ist.
define('WP_SITEURL', 'http://www.neue-adresse.de'); define('WP_HOME', 'http://www.neue-adresse.de');
Das sollte es eigentlich gewesen sein. Die WordPress-Site läuft ohne lästiges Unterverzeichnis.
Wer hier nicht zurecht kommt, kann gerne meinen Umzugsservice für WordPress in Anspruch nehmen.
Weiterleitung der alten URLs auf neue, damit keine Rankings verloren gehen
Da ja die URL der Webseite sich ändert, würden Links auf diese ins Leere laufen. Mühsam erarbeitete Rankings bei Google & Co. würden verloren gehen. Das ist der Klassiker-Fehler, der leider häufig begangen wird, wenn die Adresse einer Webseite geändert wird. Daher ist es nötig im root-Verzeichnis der Installation in der .htaccess-Datei noch eine 301 Weiterleitung einzurichten.
RedirectMatch 301 ^/wordpress/(.*)$ https://domain.tld/$1
Dadurch werden alle Anfragen, die an domain.tld/wordpress geschickt werden umgeleitet auf domain.tld.
Reinhold Langfeld
Hallo, leider bleibe ich beim schritt 1.Datenbank migrieren schon hängen. Also das WP Migrate DB habe ich aktiviert, dann Find&Replace ausgeführt. Hier wurden 12 Einträge angezeigt, alles grün. Es heisst ja das eine Migrationsdatei erstellt wird! Wo kann ich diese Datei nun finden um sie zu importieren mit PHPMyAdmin. Auf einer anderen Seite habe ich gelesen das WP Migrate DB nach fertigstellung das File zum Download anbitted?
René Dasbeck Post author
Wenn du keine direkte Datenbankersetzung startest, fragt dich der Dialog nach Erstellung der Datei, wo du sie hinspeichern willst. Mit Find & Replace änderst du direkt in der Datenbank.