Apache / ColdFusion: URL rewriting

Apache , ColdFusion Add comments

Für ColdFusion gibt es etliche Tutorials in denen das Umschreiben von URLs beschrieben wird. Jedoch immer mittels CFML. Dabei kann der Apache das viel einfacher:

Options -Multiviews

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^([a-zA-Z0-9-_]+)   index.cfm?site=$1   [QSA]

What the hell?

Der Reihe nach:

Options -Multiviews
Wenn Multiviews aktiviert ist und ein Request auf index.html erfolgt, index.html aber nicht existiert, wird eine Suche in Gang gesetzt. Findet der Apache z.B. eine index.php oder index.css, wird diese ausgeliefert. Keine gute Idee und für unser Vorhaben hinderlich.

RewriteEngine on
Die RewriteEngine, die unsere URLs umschreibt, muss erst mal aktiviert werden.

RewriteCond
%{REQUEST_FILENAME} !-f
Der Pfad in der URL verweist nicht auf eine existierende Datei

%{REQUEST_FILENAME} !-d
Der Pfad in der URL verweist nicht auf einen existierenden Ordner

%{REQUEST_FILENAME} !-l
Der Pfad in der URL verweist nicht auf einen symbolischen Link

RewriteRule
RewriteRule ^([a-zA-Z0-9-_]+) index.cfm?site=$1 [QSA]
Alle Buchstaben, Zahlen, sowie die Zeichen – und _ werden als Variable an index.cfm?site= angehängt.

Das [QSA] bewirkt, das weitere Parameter mit Übergeben werden können.

Aus www.example.com/fotos/ wird intern www.example.com/index.cfm?site=fotos.

Weitere Parameter können per URL übergeben werden. Aus www.example.com/fotos/?jahr=2009 wird dann www.example.com/index.cfm?site=fotos&jahr=2009

0 Antworten auf “Apache / ColdFusion: URL rewriting”

Antworten





Powered by Mango Blog. ©2010 Patrick Heppler. Design inspired by the GlossyBlue Theme © N.Design Studio.