Permalinks mit Zahl als Titel funktionieren nicht

  • Hallo,
    ich habe ein kleines Problem mit einer meiner Wordpress-Installationen. Meine Permalink-Struktur ist "/%category%/%postname%/", was auch eigentlich funktioniert. Wenn der Artikel aber eine Zahl (Jahreszahlen...) als Titel hat, bekomme ich einen 404-Fehler beim Aufruf.
    Ich wäre für etwas Hilfe sehr dankbar.
    Gruß

    • 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

  • Welche Wordpress-Version und welche Plugins verwendest Du?

    Bei einer "nackten" WP-Installation (3.5.2) mit dem Standard-Theme (Twenty Twelve) tritt der Effekt nicht auf.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Ich benutze 3.5.2.
    Wenn ich alle Plugins deaktiviere, besteht das Problem weiterhin.

    Normalerweise aktiviert sind:

    • WP-HideRefer
    • Breadcrumb NavXT
    • WordPress Database Backup
    • WP-Print
    • WP Permalauts
    • WP Smush.it

    Einmal editiert, zuletzt von WakeMeUp (2. Juli 2013 um 13:48)

  • Hmm, seltsam. Ich habe den Verdacht, daß die Zahl irgendwie als Artikel-ID intepretiert wird, die es dann allerdings nicht gibt.

    Was steht denn in der .htaccess-Datei drin?

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Steht nichts Verdächtiges drin.

    Was passiert denn, wenn Du einen Artikel mit einer Zahl als Titel erstellst, die der ID eines existierenden, älteren Artikels entspricht?

    Kannst Du bitte mal einen Link zu einer problematischen Seite posten?

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Funktioniert nicht, weil in den Permalinks die Option %year% vorhanden ist. Da verschluckt sich die Kiste dann. ;) Schau mal bei stackoverflow vorbei, das Thema wurde da schon öfters behandelt. Muss mich jetzt erstmal um Real Life 404's kümmern...

  • Interessanter Hinweis von formateins.

    Ist denn die Kategorie zufällig auch nur eine Zahl?

    Falls nicht, sollte es damit kein Problem geben, denn dann würde der Permalink nicht als Jahr (Monat/Tag) fehlinterpretiert werden.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Gut, jetzt konnte ich das nachstellen. Der Fehler tritt bei mir auch auf, z.B. mit der URL:
    /wissen/rezepte/1984/
    oder
    /wissen/rezepte/93/
    Aber nur bei hierarchischen Kategorien, nur /wissen/1984/ ist kein Problem. Seltsam.

    Mal gucken, woran das liegt...

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Naja zumindest ist jetzt die Ursache klar. So wird die URL intern aufgelöst:

    Code
    [request] => wissen/rezepte/1984
    [matched_rule] => (.+?)/([^/]+)(/[0-9]+)?/?$
    [matched_query] => category_name=wissen&name=rezepte&page=%2F1984
    [did_permalink] => 1

    Wordpress denkt also, es handelt sich um die Unterseite Nr. 1984 des Artikels "rezepte" in der Kategorie "wissen".

    Was man dagegen tun kann? Habe noch keinen wirklich guten Plan, wenn ich ehrlich bin.

    Du könntest z.B. auf hierarchische Kategorien verzichten oder die Permalinks in etwas wie

    Code
    /%category%/%postname%-%post_id%/


    ändern, also das die ID mit enthalten ist.

    Man könnte auch versuchen, an den WP-RewriteRules rumzubasteln, aber daß wird komplizierter und hat möglicherweise andere Seiteneffekte.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

  • Ja, kann man.

    Ich denke aber, daß Problem läßt sich vermutlich nicht so einfach lösen. Die internen Wordpress-RewriteRules müssen halt alle möglichen Optionen abdecken. Teilweise spielt schon die Reihenfolge der Regeln eine wichitge Rolle.

    Wenn Du z.B. weißt, daß Du nie Artikel in mehrere Unterseiten teilst, könnte man die Regeln einfach entfernen, die eine Zahl am Ende als Seitenzahl interpretieren. Das wäre aber nur eine individuelle Sonderlösung.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

    Einmal editiert, zuletzt von Putzlowitsch (2. Juli 2013 um 15:45)

  • Falls Interesse besteht, wie eine spezielle Lösung aussehen könnte. Sie geht davon aus, daß zu einem Artikel nicht mehr als 9 Unterseiten erzeugt werden, also die Seitenzahl einstellig bleibt.

    Diesen Code z.B. in die functions.php des Themes einfügen und anschließend einmal die Permalink-Optionen aufrufen und Speichern.

    Der Code ändert die WP-internen Rewrite-Regeln so ab, daß nur noch dann eine Unterseite vermutet wird, wenn die URL mit genau einer Ziffer endet. Zahlen mit zwei oder mehr Stellen am Ende werden als Artikel-Name interpretiert.

    Falls mit einer zweistelligen Anzahl von Unterseiten zu rechnen ist, kann die Regel auch entsprechend angepaßt werden. Aus {1} ist dann {1,2} zu machen. Damit werden dann alle Zahlen mit drei oder mehr Stellen als Artikel-Name interpretiert.

    Ich denke mal, daß ist ein vernünftiger Kompromiß, mit dem zumindest ich leben könnte. :-)


    Gruß
    Ingo

    Wenn ich helfen konnte, bitte :) klicken.

Jetzt mitmachen!

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