Jede andere Permalink-Struktur auf die jeweils aktuell genutzte umleiten

  • Folgendes Problem:
    Beim Wechsel der Permalinks, sind alte Links, die bereits in Sozialen Medien und co gepostet sind sofort ungültig.

    Eine Problemlösung wäre es, einfach jede erdenkliche Permalinkstruktur auf die aktuell genutzte weiterzuleiten.
    Mit den Standard-Permalinks /%year%/%monthnum%/%day%/%postname%/ wäre es ja recht einfach per htaccess mod_rewrite das Datum aus der URL zu entfernen und somit auf den inzw. meistgenutzten Permalink /%postname%/ umzuleiten wie hier beschrieben.

    Ist es aber auch möglich z.B. /%year%/%monthnum%/%day/%id%/ auf /%postname%/ umzuleiten? In der ursprünglichen URL wird %postname% ja nicht genannt, was mod_rewrite irgendwie aufnehmen und abändern lassen kann.
    Auch wäre es dann ja nett, wenn jede andere logische Konstellation an Permalink umgeleitet wird.

    Gibt es dazu eine Möglichkeit oder ein Plugin welches die Aufgabe übernimmt?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Sofern die ID im alten Permalink enthalten ist, geht eine zweistufige Umleitung.
    In der .htaccess wird die Umleitung auf die Version ohne Permalink umgeleitet, also /?p=ID.
    Wordpress leitet dann automatisch auf die aktuelle Permalinkstruktur um.

    Eine universelle Lösung kann es aber nicht geben, weil die Permalinks zu vielschichtig gestaltet werden können.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • ich nehme dann mal an, um z.B. die Struktur [COLOR=#333333]/%year%/%monthnum%/%day/%id%/ auf /%postname%/ zu bekommen
    braucht es ebenfalls wie im verlinkten Beispiel mit der Standard-Permalinkstruktur den htaccess-Code:

    Zitat

    [/COLOR][COLOR=#343434][FONT=Monaco]RewriteRule ^([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ /$4 [R=301,NC,L][/FONT][/COLOR][COLOR=#333333]

    So wie ich den verstehe, nimmt sich mod_rewrite dann den Text, der hinter dem Datum steht (Vermutung: (.*)$ tut dies) und hängt ihn direkt an die TLD...
    Was bei /%id% quasi das gleiche sein müsste... wie passe ich den jetzt so an, dass der Code auf /?p=%id% weiterleitet?[/COLOR]

  • Das kann man auch gut mit mod_alias umsetzen (vor den mod_rewrite-Regeln):

    Code
    RedirectMatch permanent ^/\d{4}/\d{2}/\d{2}/(\d+)    /?p=$1

    Das ergibt dann, wie gesagt, zwei Weiterleitungen. Einmal in der .htaccess per mod_alias auf die Ohne-Permalink-Version. Dann leitet Wordpress auf die aktuell eingestellte Permalink-URL um.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • und mehrere Rewriterules für verschiedene Permalinkstrukturen sind kein Problem?...

    Ja, nur wofür soll das gut sein? Du wirst ja nicht ständig die Permalinkstruktur mit unterschiedlichen Datums-Strukturen wechseln.

    Grundsätzlich ist es sinnvoll, nicht alles erschlagen zu wollen, was denkbar ist, sondern genau das, was tatsächlich notwendig ist.

    Außerdem muß man bei mehreren Regeln beachten, daß man diese in der Reihenfolge vom Speziellen zum Allgemeinen anordnet und zudem keine Endlosschleifen produziert.
    Warum kompliziert, wenn eine Regel reciht?

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!