Der Martin: lesbare URL

Beitrag lesen

Hallo,

Oups, das ist das erste Forum, dass sich verzweigt.

für mich eine Selbstverständlichkeit ...

Zum Thema: irgendwie werd ich aus diesem mod_rewrite noch nicht ganz schlau. Die Parameter zu erhalten/extrahieren ist auch garnicht das Problem! Das Problem ist die URL. Aber trotz der ganzen Antworten von Euch - hier noch einmal danke - weiss ich immer noch nicht, wie ich das machen kann.

Wo genau liegt das Problem? Eine lesefreundliche URL "geht rein", wird mit einem regulären Ausdruck untersucht, und in eine interne URL umgeschrieben.

Mit diesem Schnipsel könntest du anfangen (Zeilennummern nicht mit eingeben, klar):

1  RewriteEngine on  
2  RewriteBase /  
3  
4  RewriteCond %{REQUEST_FILENAME} !-f  
5  RewriteCond %{REQUEST_FILENAME} !-d  
6  RewriteRule ^(.*) index.php?id=$1  [QSA]

Das eigentliche Rewriting findet in Zeile 6 statt. Da wird der gesamte lokale Teil der URL, also alles, was der Server wirklich bekommt, aufgesammelt und als URL-Parameter wieder an die index.php verfüttert. Natürlich muss dein Script dann in der Lage sein, den gesuchten Datensatz anhand des Namens zu identifizieren, und nicht anhand der Datensatznummer. Das Flag [QSA] (Query String Append) bewirkt, dass eventuelle zusätzlich angegebene URL-Parameter erhalten bleiben.

Zeile 4 und 5 sorgen dafür, dass das URL-Rewriting nicht stattfindet, wenn ein Objekt (Datei oder Verzeichnis) wirklich existiert, das auf die URL passt. Andernfalls könntest du keine anderen Ressourcen auf dieser Domain ansprechen.

So long,
 Martin

--
Arzt:    Gegen Ihr Übergewicht hilft wohl nur noch Gymnastik.
Patient: Sie meinen, Kniebeugen und so?
Arzt:    Nein, Kopfschütteln. Immer dann, wenn Ihnen jemand was zu essen anbietet.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(