mod_rewrite 404 Seite wenn Rule nicht gefunden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mod_rewrite 404 Seite wenn Rule nicht gefunden

    Hallo,

    folgende Struktur benutze ich:

    index.php?inhalt=datei


    index.php =>

    <?
    // ...
    include($inhalt . '.php');
    // ...
    ?>

    datei.php befinden sich im gleichen Verzeichnis wie die index.php


    Per Rewrite schreib ich die URLs um:

    RewriteEngine On
    RewriteRule ^([^/]+)\.html$ /index.php?inhalt=$1 [NS,QSA,L]

    Was auch alles funktioniert.

    Ich möchte nun folgendes einfügen. Und zwar wenn jemand im Browser domain.de/datei.php eingibt, möchte ich das es einen 404 oder dergleichen gibt.

    Hatte deswegen als letztes in der der htaccess das eingegeben:

    RewriteRule ^(.+\.php)$ $1 [NS,G,L]

    Leider ist es nun so das ich immer einen "Gone" als Resultat bekomme. Ich hatte bei den zuvor definierten Rules die Flag L angegeben um die nachstehenden Rules abzubrechen. Leider wird die Flag scheinbar übergangen.

    Das Problem ist das die RewriteEngine nach:
    RewriteRule ^([^/]+)\.html$ /index.php?inhalt=$1 [NS,QSA,L]
    noch einmal die Rules durchgeht und schaut ob es etwas mit der index.php machen soll. Deswegen wird: RewriteRule ^(.+\.php)$ $1 [NS,G,L] ausgeführt und ich erhalte die Gone Seite. Ich versteh nur leider nicht warum. Dachte das ich per Flag NS genau das vermeiden könnte. Leider ist dem nicht so.


    Weis jemand wie ich das Problem umgehen kann?
    Grüsse,
    Sebastian


    Profil Flex Freelancer
    Twitter twitter.com/flashhilfe
    Web Flash und Flex Community

  • #2
    Nun hab ich eine Lösung:

    RewriteCond %{REQUEST_URI} !^/index.php
    RewriteRule ^(.+\.php)$ - [NS,G,L]


    ... auf die einfachsten Möglichkeiten komm ich immer zu letzt


    Würd mich dennoch freuen wenn jemand eine bessere Idee hat.
    Grüsse,
    Sebastian


    Profil Flex Freelancer
    Twitter twitter.com/flashhilfe
    Web Flash und Flex Community

    Kommentar

    Lädt...
    X