Gunther: mod_rewrite / Hilfe bei RewriteRules

Beitrag lesen

Hi,

  1. alle Requests sollen an eine Datei, z.B. start.php weitergeleitet werden

Punkt 4 ist letztlich der eigentlich wichtigste, da sämtliche Requests über meine Startdatei laufen sollen.

Wie, alle, *.html?
ich verstehe deine Frage nicht ganz.

Nunja, eine Beschränkung auf eine Dateierweiterung ist sinnvoll.

Warum?
Ich halte Dateierweiterungen in URLs prinzipiell für_nicht_sinnvoll.

Ja, alle Requests sollen an_eine_Datei weitergeleitet werden, die dann die weitere Verarbeitung übernimmt. Natürlich ausgenommen solche, die auf real existierende Unterverzeichnisse zeigen, um bspw. Stylesheets und ähnliches anzufordern. Aber diese Dateien liegen wiegesagt alle in Unterverzeichnissen.

Letzeres löse ich nicht in der .htaccess sondern bereits in der Projektverwaltung. Meine Regel sieht so aus:

RewriteEngine on
RewriteRule ^.*.html$    /cgi-bin/show.cgi?html

Also eine Regel für *.html. Da mein Script show.cgi noch andere Dinge erledigen muss, gebe ich in den QUERY_STRING [1] die Info mit, dass es sich um Requests auf html-Dateien hadelt. Das Script schaut nun in eine Tabelle, ob es einen Eintrag für den REQUEST_URI [1] gibt; diese Tabelle wird aus meiner Projektverwaltung heraus erzeugt.

Das mag ja für dein Projekt auch alles so OK sein, nur kann ich das für meinen Fall nicht gebrauchen.

Mir geht es wie bereits erwähnt, u.a. um die folgenden Punkte:
Ich möchte nicht, dass bspw. ein simpler Tippfehler (also solche, die 'logisch' als solche erkennbar sind) wie ein doppelter (oder x-facher) Slash '/' zu einem 404er führt, wenn es ohne eine passende Resource gibt. Ebenfalls ganz wichtig ist eben auch, dass es jede Resource nur durch genau eine URL erreichbar ist.

Gruß Gunther