Lighttpd in Verbindung mit WordPress und Rewrites
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.
Related posts:

Servus
welchen Vorteil bietet dir die url rewrites von Permalinks. Ich erkenne keinen Vorteil
stichwort suchmaschionenfreundliche links
Vielen Dank für den Tipp! Hat mir gerade sehr geholfen
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.
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
Vielen Dank für Erläuterung, hat mir weitergeholfen.