SOLVIUM

Webentwicklung

[Lösung] lighttpd: www-Redirect und Rewrite-Problem

Donnerstag, 26. August 2010 - 15:25 Uhr

lighttpd Logo Bei mir aufm V-Server läuft nicht Apache, sondern mit lighttpd ein kleiner, schneller Webserver. Der verrichtet seine Dienste auch wunderbar schnell und fehlerfrei, ist allerdings in der Konfiguration etwas hakelig. Möchte man eine Umleitung von meinedomain.de auf www.meinedomain.de haben, sieht der Codeschnipsel dafür normalerweise so aus:

$HTTP["host"] =~ "^(meinedomain\.de|www\.meinedomain\.de)$" {
  $HTTP["host"] =~ "^([^.]+\.[^.]+)$" {
    url.redirect = (
      "^/(.*)$" => "http://www.%1/$1"
    )
  }
...
}

Das klappt auch ganz wunderbar, außer man hat eine zusätzliche rewrite-Rule, die auch alle Pfade fängt. Das passiert beispielsweise, wenn man versucht, alles auf die index.php zu schicken, um von dort die Inhaltswiedergabe zu steuern. Im obigen Beispiel sieht das so aus:

$HTTP["host"] =~ "^(meinedomain\.de|www\.meinedomain\.de)$" {
  $HTTP["host"] =~ "^([^.]+\.[^.]+)$" {
    url.redirect = (
      "^/(.*)$" => "http://www.%1/$1"
    )
  }
  url.rewrite-once = (
    "^/(.*)" => "index.php?p=$1"
  )
...
}

Das Problem: Bei lighttpd geht rewrite vor redirect. Das heißt, beim Aufruf von meinedomain.de (ohne www) greift die Rewrite und der Aufruf wird intern an index.php geleitet. Die redirect-Regel wird nicht ausgeführt! Die Domain bleibt ohne www stehen.

Die Lösung: Einfach die beiden Blöcke trennen. Alle Hosts, die nur weitergeleitet werden sollen, bekommen ihren eigenen Konfigurations-Teil. Das sieht dann so aus:

$HTTP["host"] =~ "^(meinedomain\.de)$" {
  $HTTP["host"] =~ "^([^.]+\.[^.]+)$" {
    url.redirect = (
      "^/(.*)$" => "http://www.%1/$1"
    )
  }
}

$HTTP["host"] =~ "^(www\.meinedomain\.de)$" {
  url.rewrite-once = (
    "^/(.*)" => "index.php?p=$1"
  )
...
}

Ich hoffe, das hilft jemandem, ich habe mich eben gewundert, warum der redirect nicht so funktioniert, wie er soll :-)

GD Star Rating
loading...

, , , | Kommentar schreiben | Trackback einrichten

Einen Kommentar schreiben

Blog Blogs Code DJK Dyckburg Einkaufen EM 2008 Essen Film Firefox Fotos Fussball Games Geburtstag Gewinnspiel Google Gutenachtgeschichten Handy ich Katzen Kreta Lebensweisheiten Musik Münster Münster Poker Politik Programmierung real Rechner Schokolade SEO Shop Studium The Killers Trash TV Twitter unblogbar Uni Video Web Weihnachten Werbung Wirtschaft Wordpress

© 2006-2012 Solvium.de - von und mit Jan Papenbrock - Impressum - Kontakt aufnehmen

» Blog powered by Wordpress. Silk icons von FamFamFam.