Permalinks aktiviert: doch wieso kein Error404 bei nicht vorhandener URL?

  • Win7/64, XAMPP 1.7.3, PHP: 5.3.1
    WP 3.3.1


    Hi,

    möchte WP in eine bestehende Site integrieren und Artikel auf mehreren Seiten ausgeben (nur die Artikel selbst, keine Theme-Formatierungen), abhängig von der zugeordneten Kategorie. So weit, (klappt dies auch) so gut.

    Nun probiere ich gerade aus, wie sich Permalinks der Form "/%year%/%postname%/" zum einen auf die Seiten auswirken, in denen ich WP integriert habe und zum anderen auf die Seiten ohne WP-Integration.

    Dies klappt auch insofern ganz gut, dass zB beim Aufruf von "http://localhost/xyz/2012/hallo-welt/" keine Broken Links entstehen.
    Wenn ich jedoch eine beliebige ungültige Adresse eingebe (zB "http://localhost/xyz/2012blabla/halloblabla/"), wird trotzdem immer versucht, eine Seite auszugeben anstatt einfach die Meldung, Error404/Seite nicht gefunden.

    Nach Aktivierung der Permalinks in WPs Adminpanel, hat mir WP selbst übrigens keine htaccess angelegt.

    Meine Frage wäre also, wie ich einen solchen Error404 erreiche, wenn eine nicht vorhandene Adresse eingegeben wird -- sozusagen das "normale Server-Verhalten" vor meiner Integration von WP (noch in eine lokale Test-Site).

    Morgendliche Gute-Nacht-Grüße
    Carlos

    PS: hier noch weitere Angaben über WordPress RewriteRules Viewer:
    [FONT="Courier New"]using_permalinks : true
    using_index_permalinks : false
    using_mod_rewrite_permalinks : true
    use_trailing_slashes : true
    use_verbose_rules : false
    use_verbose_page_rules: false[/FONT]

    Link für mich: wordpress.org: Using Permalinks

    • 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

  • Zitat

    Nach Aktivierung der Permalinks in WPs Adminpanel, hat mir WP selbst übrigens keine htaccess angelegt.

    Wenn dem so wäre, dann hättest Du gleich nach Anlegen der Permalinks eine Meldung gehabt. Könnte es sein, dass die htaccess zwar da ist - worauf die Meldungen des Viewers auch hindeuten - aber Du im FTP-Client diese nicht siehst, weil sie ausgeblendet ist? In FilZilla musst Du diese Option extra einschalten.

  • Du kannst dir eine eigene 404.php anlegen, auf die WP dann bei einem Error404 leitet: http://codex.wordpress.org/Creating_an_Error_404_Page

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • dass die htaccess zwar da ist - worauf die Meldungen des Viewers auch hindeuten - aber Du im FTP-Client diese nicht siehst, weil sie ausgeblendet ist?

    Nee, ich arbeite noch lokal (über localhost-Aufrufe).
    Es wurde definitiv keine .htaccess angelegt.

    ---

    Au Backe. Ich nehm alles zurück. Hab nicht erwartet, dass mir WP im htdocs-Verzeichnis (auf oberster Ebene) die htaccess anlegt statt in meinem lokalen Testordner (in dem ich in einem Unterordner WP installiert habe).
    Dachte, diese würde im selben Verzeichnis wie die index.php angelegt werden!?

    Diese htaccess hat WP so angelegt:

    Apache Configuration
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /SITE-ORDNER/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /SITE-ORDNER/index.php [L]
    </IfModule>
    # END WordPress

    Einmal editiert, zuletzt von mtemp (18. Januar 2012 um 23:44)

  • Du kannst dir eine eigene 404.php anlegen, auf die WP dann bei einem Error404 leitet: http://codex.wordpress.org/Creating_an_Error_404_Page

    Mein Problem ist jedoch, dass die Permalink-Regeln in der htaccess, die mir WP angelegt hat (s. oben), nicht dazu führen, dass bei Aufruf einer nicht vorhandenen Seite die entsprechende Error404-Seite angezeigt wird.

    Meine Permalink-Struktur: /%year%/%postname%/

    Füge ich in die htaccess folgende Zeile ein:
    [FONT="Fixedsys"]ErrorDocument 404 infos/error404.php[/FONT]
    ... so haben die Rewrite-Regeln wohl Vorrang, die ErrorDocument-Direktive (nennt sich dies so?) wird also ignoriert.

    Noch einmal Dankeschöns und 'nen starken Start in den Tag :)
    Carlos

  • Bin mit meinem Problem nicht weiter gekommen. Deshalb mache ich hier weiter...

    Wie lässt sich htaccess so anpassen, dass nur dann "/SITE-ORDNER/index.php" aufgerufen wird, wenn es zu dem Permalink auch tatsächlich einen Artikel gibt?

    Wobei mir erstmal auch ausreichen würde, wenn nur bei Aufruf einer URL mit einer Jahreszahl (analog zu meiner Permalink-Struktur: "/%year%/%postname%/") dieser Rewrite-Mechanismus greifen würde.

    Danke!

  • Innerhalb der .htaccess ist ja noch nicht bekannt, ob es in Wordpress einen Artikel mit dem passenden Permalink gibt. Wenn Permalinks in Wordpress aktiv sind, kann nur Wordpress einen möglichen 404-Error be- und verarbeiten.

    Die Wordpress-Regel in der .htaccess leitet alles, was es nicht wirklich als Datei oder Verzeichnis auf dem Server existiert, zur index.php weiter.
    Die Permalinks sind ja nur vituell, sie existieren nicht im Dateisystem des Servers.

    Deshalb kann auch die per ErrorDocument konfigurierte Fehler-Datei nie aufgerufen werden. Aber in Wordpress kann man im Theme ein Error-Datei verwenden, die Wordpress immer dann aufruft, wenn eben nichts passendes zum Permalink gefunden worde. Das hatte maxe oben schon geschrieben.

    In dieser 404.php kann man praktisch alles das machen, was auch in der per ErrorDocument konfigurierten Error-Datei möglich ist.

    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!