1. #1
    Lt. Commander
    Dabei seit
    Apr 2011
    Beiträge
    1.981

    Eigene Fehlerseite 404 und trailing slash redirect

    Moin moin,

    ich habe auf meiner Seite eine individuelle Fehlerseite für den Error 404 erstellt. Das gehört ja zum guten Ton Der Verweis darauf ist in der .htaccess festgehalten. Ebenfalls habe ich dort eine Regel stehen, die an die eingegebene URL einen Trailing Slash hängt. Das Ganze sieht so aus:

    Code:
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !(.*)/$
    RewriteRule ^(.*)$ $1/ [L,R=301]
    
    ErrorDocument 404 /404.php
    ErrorDocument 401 /401.php
    Funktioniert auch alles bestens. Ab und zu mache ich mal einen vollständigen Test auf www.seitenreport.de. Dort wird unter anderem auch geprüft, ob eine eigene Fehlerseite vorhanden ist. Leider erreiche ich dort nur 50% von 100% mit der Begründung "Redirect". Wenn ich die Regel für den abschließenden Slash rausnehme, bekomme ich auch die 100%. Verständlicherweise will ich die Regel aber behalten.

    Mit diversen HTTP Header Check Tool bekomme ich folgende Ergebnisse:
    Nicht vorhandene Seite ohne trailing Slash:

    Code:
    http://www.meinedomain.de/123 - 301 Moved Permanently
    http://ww.meinedomain.de/123/ - 404 Not Found
    Nicht vorhandene Seite mit trailing Slash:
    Code:
    http://www.meinedomain.de/123/ - 404 Not Found
    Nun zur abschließenden Frage Wie kann man es realisieren, dass der 404 auch ausgegeben wird, selbst wenn kein trailing Slash am Ende steht? Interessant finde ich, dass bspw. hier auf CB bei einer Fehlerseite kein Slash angehängt wird - sonst schon.

    Danke im Voraus,
    qhil

    Ergänzung vom 12.07.2013 06:53 Uhr: Hat wirklich niemand einen Ansatz dafür?
    Im Prinzip will ich ja "nur", dass kein Slash angehangen wird, wenn die Seite nicht existiert, damit wirklich nur der 404 und nicht auch noch der 301 ausgegeben wird.
    | CPU: Intel Core i5 2500K @ 4.3 GHz @ Mugen 2 | Board: ASUS P8P67 Rev 3.0 | GPU: MSI N670GTX Power Edition OC |
    | RAM: 8 GB Corsair Vengeance DDR3 | SSD: Samsung 830 128 GB | Display: 2x BenQ GW2760S @ 1920x1080 |
    | NT: be quiet! Straight Power 600W | OS: Windows 7 Ultimate x64 | Input: KeySonic KSK-6001 | Roccat Kone Pure |

  2. Anzeige
    Logge dich ein, um diese Anzeige nicht zu sehen.
  3. #2
    Commander
    Dabei seit
    Nov 2007
    Ort
    Ulm
    Beiträge
    2.788

    AW: Eigene Fehlerseite 404 und trailing slash redirect

    Hmm, ich hab zwar nicht so viel Ahnung von Rewrites, aber warum hast du ein ! vor deinem -f?
    Damit leitest du ja bewusst jede nicht existierende Seite ohne / um.
    Wenn du umleiten willst, kannst du ja mit -d prüfen und sonst wird's das Verzeichnis nicht geben.
    Code:
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteCond %{REQUEST_URI} !(.*)/$
    RewriteRule ^(.*)$ $1/ [L,R=301]
     
    ErrorDocument 404 /404.php
    ErrorDocument 401 /401.php

  4. #3
    Lt. Commander
    Ersteller dieses Themas

    Dabei seit
    Apr 2011
    Beiträge
    1.981

    AW: Eigene Fehlerseite 404 und trailing slash redirect

    Der Header wird jetzt zwar richtig ausgeben, egal ob ich eine nicht vorhandene Seite mit oder ohne Slash aufrufe, allerdings hängt der an eine existierende Seite kein Slash mehr ran und sagt, dass es sie nicht gibt.

    Beispiel:
    www.meinedomain.de/impressum/ gibt es.
    Wenn ich www.meinedomain.de/impressum aufrufe, soll er einen Slash anhängen und die Seite aufrufen. Das tut er nicht und zeigt daher auch Fehler 404 an.
    Geändert von qhil (13.07.2013 um 01:01 Uhr)
    | CPU: Intel Core i5 2500K @ 4.3 GHz @ Mugen 2 | Board: ASUS P8P67 Rev 3.0 | GPU: MSI N670GTX Power Edition OC |
    | RAM: 8 GB Corsair Vengeance DDR3 | SSD: Samsung 830 128 GB | Display: 2x BenQ GW2760S @ 1920x1080 |
    | NT: be quiet! Straight Power 600W | OS: Windows 7 Ultimate x64 | Input: KeySonic KSK-6001 | Roccat Kone Pure |

  5. #4
    Fleet Admiral
    Dabei seit
    Jun 2011
    Beiträge
    13.180

    AW: Eigene Fehlerseite 404 und trailing slash redirect

    Ich galube, das hast Du keinen Einfluss drauf.

    Hier bei CB ist es ja auch nicht anders.

    Entscheidend bei dem Slash ist wohl, gibt es einen Ordner mit dem Namen 123 wirklich. Gibt es ihn, kommt eben ein / ans Ende dran. Gibt es ihn nicht, dann bleibt die 123 ohne Slash stehen.

    Es ist ja kein 404, wenn meinedomain.de/123 wirklich existiert.
    Geändert von BlubbsDE (13.07.2013 um 01:02 Uhr)

  6. #5
    Lt. Commander
    Ersteller dieses Themas

    Dabei seit
    Apr 2011
    Beiträge
    1.981

    AW: Eigene Fehlerseite 404 und trailing slash redirect

    Es ist richtig, was du sagst. Wenn /123 nicht existiert, dann wird 404 zrückgegeben und kein Slash angefügt. Bei mir wird halt immer ein / angefügt, wodurch im Header dann 301 zurückgegeben wird - unabhängig ob es die Seite gibt oder nicht. Genau das will ich verhindern Bei CB geht es ja auch.
    | CPU: Intel Core i5 2500K @ 4.3 GHz @ Mugen 2 | Board: ASUS P8P67 Rev 3.0 | GPU: MSI N670GTX Power Edition OC |
    | RAM: 8 GB Corsair Vengeance DDR3 | SSD: Samsung 830 128 GB | Display: 2x BenQ GW2760S @ 1920x1080 |
    | NT: be quiet! Straight Power 600W | OS: Windows 7 Ultimate x64 | Input: KeySonic KSK-6001 | Roccat Kone Pure |

  7. #6
    Commander
    Dabei seit
    Nov 2007
    Ort
    Ulm
    Beiträge
    2.788

    AW: Eigene Fehlerseite 404 und trailing slash redirect

    Und deshalb ja der Tipp, auf das existieren des Verzeichnisses mit -d zu testen, um dann entsprechend reagieren zu können.

    Cond -d
    Redirect / 301,L
    Cond !-d
    Cond !-f
    Redirect 404,L

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •