12 März 2010

[Howto] Sprachbasierte Weiterleitung in Lighttpd mit der Hilfe von mod_magnet

Kategorien: HowTos
Tags: Web

Lighttpd ist ein Webserver mit einer schnell wachsenden Nutzerbasis. Dieses Howto zeigt, wie bei Lighttpd Redirects auf Basis der Spracheinstellung des Nutzers im Browser erstellt werden. Während des Wechsels unserer Blog-Software auf Movable Type wurde die Entscheidung getroffen, die Begrüßungsseite je nach Sprache des besuchenden Browsers entweder auf deutsch oder auf englisch anzuzeigen. Da Movable Type statische HTML-Seiten generiert, sollte dabei kein Workaround mit z.B. cgi-Skripten zum Tragen kommen. Als Webserver wird bei der Maschine Lighttpd genutzt. Lighttpd kann das mächtige Modul mod_magnet einbinden, das eine Lösung für Sprach-Problematik bietet: mod_magnet kann Lua-Skripte ausführen, die nahezu alle Aspekte der Behandlung einer Anfrage ändern können. Die Anfragen an http://blog.credativ.com/ werden mit dem folgenden Lua-Schnipsel entsprechend umgeschrieben:

lighty.env["uri.path"] = "/en/index.html"
lang = lighty.request['Accept-Language']
if (lang) then
        if (string.sub(lang,1,2) == 'de') then
                lighty.env["uri.path"] = "/de/index.html"
        end
end
lighty.env["physical.rel-path"] = lighty.env["uri.path"]
lighty.env["physical.path"] = lighty.env["physical.doc-root"] .. lighty.env["physical.rel-path"]

In der Lighttpd-Konfiguration muss mod_magnet angeschaltet sein. Damit alle Anfragen für „/“ entsprechend bearbeitet werden, muss außerdem folgender Schnipsel in der Konfiguration auftauchen:

$HTTP["url"] =~ "^/$" {
        magnet.attract-physical-path-to = ( "/path/to/your/script.lua" )
}

mod_magnet cached dabei das kompilierte Skript und führt es im Kern von Lighttpd aus, es sollte also keinen nennenswerten Einfluss auf die Auslieferungszeit von Webseiten haben. Schreibt einen Kommentar, wenn Ihr Fragen dazu habt. Für professionelle Unterstützung und Beratung bei Lighttpd auf Geschäftsebene stehen wir wie üblich auch mit unserem Open Source Support Center bereit.

 

Dieser Artikel wurde ursprünglich geschrieben von Bernd Zeimetz.

Kategorien: HowTos
Tags: Web

SH

über den Autor

Sascha Heuer


Beitrag teilen: