Support » Allgemeine Fragen » [?] .htaccess – RewriteEngine – kpl. Pfad umschreiben

  • Gelöst flussuferchen

    (@flussuferchen)


    Hallo,

    bin neu in WP und wegen eines Details mittlerweile am erfolglosen Suchen und Verzweifeln.

    Gegeben sei eine Domain examp.le mit Verzeichnis examp.le/wp fürs WP. Das Umschreiben per .htaccess von examp.le auf examp.le/wp funktioniert. Allerdings benötige ich Kurz-URLs wie examp.le/0815, die auf den Beitrag mit der entsprechenden ID (hier wäre also examp.le/wp/0815 das Ziel) weiterleiten sollen. Egal, welche Varianten ich schon durchprobiert habe, wird examp.le/0815 je nach getestetem Browser entweder nach examp.le/wp weitergeleitet oder ein 404 ausgeworfen – während examp.le/wp/0815 bei Direktaufruf korrekt angezeigt wird.

    Kann jemand mit einem Codebeispiel den Knoten lösen? Wahrscheinlich habe ich noch nicht alle möglichen Parameter aufgesogen bzw. einfach falsch angewendet.

    Danke und LG

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Gegeben sei eine Domain examp.le mit Verzeichnis examp.le/wp fürs WP.

    Hier gibt es drei Varianten:

    1. 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.
    2. 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.
    3. 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.

    Thread-Starter flussuferchen

    (@flussuferchen)

    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.

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)