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.

Related posts:

  1. Kurz notiert: Lighttpd Fehler unter Debian Lenny “Port already in use” beheben
  2. nginx für Zend Framework konfigurieren

From → Uncategorized

7 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.

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