Skip to content

Lighttpd in Verbindung mit WordPress und Rewrites

by admin on April 24th, 2010

Grad bei Tim im Blog den Eintrag über den Einsatz von Url-Rewrites für WordPress-Permalinks bei Lighty gesehen  und mich daran erinnert, wie sehr ich mich damit gequält habe, bevor ich auf Nginx als Webserver ausgewichen bin.

Er hat das ganze recht schön zusammengefasst und mit wenigen Zeilen Code auf den Punkt gebracht. Ergänzen möchte ich, dass sich das WordPress-Rewrite Set sehr elegant in eine Externe Datei auslagern lässt, um somit bei vielen gehosteten WordPress-Instanzen die Übersichtlichkeit der lighttpd.conf zu bewahren. Folgende Konfiguration kam dabei bei mir zum Einsatz:

Einfach im lighttpd Verzeichnis eine Datei anlegen, z.B. wp-rewrite.conf und folgendes Einfügen:

url.rewrite-once = (
“^” + wpdir + “(wp-.+).*/?” => “$0”,
“^” + wpdir + “(sitemap.xml)” => “$0”,
“^” + wpdir + “(xmlrpc.php)” => “$0”,
“^” + wpdir + “keyword/([A-Za-z_0-9-])/?$” => wpdir + “index.php?keyword=$1”,
“^” + wpdir + “(.+)/?$” => wpdir + “index.php/$1”
)

In der eigentlichen lighttpd.conf muss jetzt nur noch für jede WordPress-Installation / Domain folgendes eingefügt werden:

var.wpdir = “/”
include “wp-rewrite.conf”

Also z.B. wie folgt:

$HTTP[“host”] =~ “^chrische\.de$” {
url.redirect = ( “^/(.*)” => “http://www.chrische.de/$1” )
}

$HTTP[“host”] =~ “(^|\.)chrische\.de$” {
server.document-root = “/var/www/chrische.de”
server.errorlog = “/var/log/lighttpd/chrische.de/error.log”
accesslog.filename = “/var/log/lighttpd/chrische.de/access.log”
server.error-handler-404 = “/e404.php”
var.wpdir = “/”
include “wp-rewrite.conf”
}

Die Variable wpdir erlaubt es, dass das WordPress-Root nicht mit dem Root des vHost übereinstimmen muss.

From → Uncategorized

9 Comments
  1. Mylene permalink

    Servus

    welchen Vorteil bietet dir die url rewrites von Permalinks. Ich erkenne keinen Vorteil

  2. Vielen Dank für den Tipp! Hat mir gerade sehr geholfen :)

  3. lun4tic permalink

    Hmm, wie muß der Rewrite aussehen wenn erst geprüft werden soll ob es den Ordner/Datei bereits gibt (Bei mod_rewrite war das glaube ich -f und -d)? Habe andere Ordner und Dateien im Blog Verzeichnis welche nun nicht angezeigt werden da immer auf den Blog geleitet wird bzw. auf die “Not Found” Blog Seite.

  4. hallo christian,

    habe gerade dein howto für permalinks unter dem lighttpd gesehen und auch angewandt. habe aber dort das problem, dass ich zwischen der domain und der generierten url immer noch ein “/index.php/” zwischen sitzen habe.

    beispiel:

    http://blog.nieland.cc/index.php/2010/11/30/hallo-welt/

    hast du eine idee?

    danke und gruß
    henning

  5. Vielen Dank für Erläuterung, hat mir weitergeholfen.

  6. Chris permalink

    Fehler:
    Du hast Anführungszeichen genutzt. Verstehe nicht, wie das hier bei jemanden funktionieren konnte? Selbst geschriebene Kommentare vielleicht?

    Tausche mal “ und ” durch ” aus!

    LG

    • admin permalink

      Danke für den Hinweis, im Editor sind es die richtigen Zeichen, habe das nochmal geprüft, diese werden aber wohl irgendwo zerhackt. Muss ich mich wohl auf die Suche nach dem Übeltäter in meiner WordPress-Installation / -Konfiguration begeben…

      Vielleicht haben die Kommentatoren den Fehler ja selbst gefunden und bei sich entsprechend geändert oder es liegt daran, dass diese nur einen dofollow-Link abgreifen wollten, ich jedoch Spam-Urls entfernt habe. Selbst kommentieren war jedoch keine mögliche Option, vielleicht liegst du ja ein andermal richtig mit deinen Vermutungen viel Erfolg. 😉

Trackbacks & Pingbacks

  1. Lighttpd, Wordpress und die Rewrites | Bananasoft.org

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS