Nutzung des mod_negotiation modules

edit | delete

Autor: Vilma Plum

eingetragen: Montag, 12. Dezember 2005 um 10:42 Uhr (50/2005 Kalenderwoche)

geändert: Mittwoch, 26. Januar 2011 um 11:40 Uhr (4/2011 Kalenderwoche)

Keywords: google friendly-URL Parameter verstecken umleitung htaccess

Kategorien: Apache,

Text:

Apache bietet die Möglichkeit, über Einstellung auf directory-Ebene den server nach file-Namen suchen zu lassen. Hierzu muss die Direktive < Options MultiViews > gesetzt sein. Diese Direktive bewirkt, dass der Server einen Pfad so interpretiert, dass der wahrscheinlichste file aufgerufen und verarbeitet wird. (wichtig: Options All setzt nicht die MultiViews)
Wenn im Apache im Verzeichnis des virtuellen hosts der AllowOverride All gesetzt ist, kann dies innerhalb eines htaccess-files erfolgen.
Beispiel:
Pfad: www.resimao.org/html/foo/bar
Alle drei genannten Verzeichnisse existieren nicht, aber es existiert ein file namens html.php.
Die Fallback-Funktion des Apache bewirkt in diesem Fall, dass von hinten angefangen immer weiter in den vermeintlich höherliegenden Verzeichnissen nach files gesucht wird. Mit der Option MultiViews sucht Apache weiterhin nach files mit dem Namen der vermeintlichen Verzeichnisse.
Ergebis hier:
Apache geht zurück bis zum 'Verzeichnis' html und ruft jetzt den file html.php auf.
dieser enthält die komplette Ablauflogik des Angebotes (sonst in index.php abgelegt).


Der Vorteil dieses Ansatzes ist, dass Parameter auf diesem Wege durch slashes-Trennung übergeben werden können.
Alles was hinter dem aufgerufenen file-Namen steht kann über die Umgebungsvariable $SERVER['PATHINFO']ausgelesen und weiter verarbeitet werden. $SERVER['PATHINFO']=/foo/bar
Die URL bietet auf diese Weise einen schön lesbaren String
www.resimao.org/html/Togo/product/23