Gegeben sei eine Domain examp.le mit Verzeichnis examp.le/wp fürs WP.
Hier gibt es drei Varianten:
- Du trägst im Kundenmenü des Webhosters ein, dass
/wp
das Web-Stammverzeichnis ist. Dabei werden Seiteaufrufe, wenn eine Datei oder ein Verzeichnis nicht vorhanden ist, an die index.php
im Web-Stammverzeichnis /wp
weitergeleitet.
Rufst du https://example.com/readme.html
auf (diese Datei existiert), wird /wp/readme.html
ausgeliefert.
Rufst du https://example.com/ueber-uns
auf (dazu gibt es auf dem Server keine physische Datei), wird der Aufruf als GET-Parameter an die /wp/index.php
weitergeleitet. WordPress sucht dann nach einem Slug ueber-uns
und liefert die Seite mit der Datenbank-ID 42 und dem Titel „Über uns“ aus.
- Du möchtest mehrerer Webanwendungen parallel betreiben (zum Beispiel eine eigene Cloud-Lösung wie Nextcloud, ein eigenes Wiki wie DokuWiki …) und hast deshalb WordPress in einem eigenen Unterverzeichnis
/wp
gespeichert. In dem Fall musst du bei dem Block, den WordPress in die .htaccess
schreibt, den Verzeichnispfad anpassen und die „WordPress-URL“ in Einstellungen > Allgemein ändern. Die Einstellungen werden hier beschrieben: Giving WordPress Its Own Directory.
- Du betreibst bereits eine Website, die z.B. mit einem anderen CMS läuft. Zusätzlich möchtest du in einem eigenen Unterverzeichnis
/wp
eine WordPress-Website installieren. Bei den Weiterleitungen verhält sich die Website wie 1., nur hast du dann in der URL immer den Pfad /wp
enthalten.
Für welche Lösung du dich auch entscheidest: Sobald du „Pretty Permalinks“ einrichtest (also leichter lesbare, „schöne“ Permalinks wie https://example.com/ueber-uns
statt https://example.com/?p=42
nutz) fügt WordPress der .htaccess
einen eigenen Block mit Weiterleitungsregeln hinzu. Alle Weiterleitungsregeln, die du unterhalb dieses von WordPress eingetragenen Block einfügst, werden gar nicht mehr berücksichtigt, da bereits die WordPress-Weiterleitungen ausgeführt wurden.
Möchtest du nun https://example.com/42
auf https://example.com/?p=42
umleiten, muss eine entsprechende ID oberhalb des Blocks stehen, den WordPress eingetragen hat. Das kann dann z.B. so aussehen:
# alte Seite example.com/42 auf example.com/?p=42 weiterleiten
Redirect 301 /42 https://example.com/?p=42
Redirect 301 /815 https://example.com/?p=815
Wie die Ziel-URL lautet, hängt davon ab, für welche der drei Varianten du dich entschieden hast.
Danke dir.
Var. 1 funktioniert nicht, da auf der Oberfläche des Hosters beim Versuch, den zugeordneten Stamm zu ändern, nur eine nichtssagende Fehlermeldung geworfen wird.
Var. 2 hatte ich eigentlich schon zweimal versucht und auch die verlinkte Anleitung beachtet. Diesmal hat’s aber geklappt, nachdem ich nach Abschluss aller Schritte ein paar Min. abgewartet habe. Da hatte ich zuvor wohl entweder zu wenig Geduld oder irgendeinen Pfad nicht ganz korrekt angegeben.
LG
Wenn du bei einer bereits vorhandenen WordPress-Installation das Web-Stammverzeichnis änderst, musst du auch in der Datenbank-Tabelle wp_options
die Felder siteurl
und home
ändern, dich erneut anmelden und dann mit Better Search Replace die URL von (sinngemäß) https://example.com/wp
auf https://example.com
ändern.
Da du jetzt die Variante mit eigenem WordPress-Verzeichnis bei einer Neuinstallation gewählt hast, brauchst du nichts mehr anpassen.