Tron: ErrorDocument-Direktiven in .htaccess-Dateien

Hallo nochmal,

habe noch ein .htaccess-Problem:

habe im Stammverzeichnis eine .htaccess-Datei mit folgenden Anweisungen:

ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php

Funktioniert auch einwandfrei.
Wenn nun aber eine fehlerhafte URI in einem UNTERVERZEICHNIS aufgerufen wird, wird zwar die 404-Seite angezeigt, aber alle Grafikreferenzen, die relativ und nicht absolut eingebunden sind, sind fehlerhaft, weil sie sich auf das UNTERVERZEICHNIS beziehen, in dem ja die Grafiken NICHT verfügbar sind.

Beispiel:

404-Seite bei Stammverzeichnis:
http://seber-rider.de/favicon.uco

404-Seite bei UNTERVERZEICHNIS:
http://seber-rider.de/test/favicon.uco

Ist hier das Problem nur mit absoluten Pfadangaben zu lösen oder gibts hier wieder einen mir nicht bekannten Trick?

  1. Hallo,

    Ist hier das Problem nur mit absoluten Pfadangaben zu lösen

    Wenn Du auf korrekte HTTP-Statuscodes wert legst: Ja.

    Anosnsten kannst Du natürlich auf die Fehlerseite weiterleiten lassen, dann erhält der Browser einen Status 302 (Redirect) und der Browser zeigt dann die Fehlerseite direkt an. Hat aber zwei Nachteile:

    * Programme, die versuchen, Statuscodes zu interpretieren, erkennen
       keinen Fehler und denken, die Seite existiert, nur am Ort der Fehlerseite.

    * Bei 401 geht das nicht, weil 401 ja vom Browser interpretiert werden
       *SOLL*, damit er eine Aufforderung anzeigt. Wenn Du das für 401
       einrichtest, bricht die ganze Anmeldefunktionalität zusammen.

    Wenn Du diese Nachteile in Kauf nehmen willst (ich würde das nicht tun wollen), dann gib bei ErrorDocument einen absoluten URI an (also mit http://.../).

    Viele Grüße,
    Christian

  2. Hi,

    Ist hier das Problem nur mit absoluten Pfadangaben zu lösen

    Ja - fuer die externen Referenzen im Fehlerdokument natuerlich, nicht fuer das Fehlerdokument selber.

    Absolut zur Domainwurzel referenzieren, also mit beginnendem Slash, reicht.

    MfG ChrisB