Archiv

Artikel Tagged ‘lighttpd’

Schöne Wordpress Permalinks mit Lighttpd Webserver

29. Juni 2009

Bei einem aktuellen Projekt musste ich mich ein wenig mit dem Ram einschränken, da der vServer nur 96MB Ram zur Verfügung hat. Darum habe ich mich für eine saubere Lighttpd Installation ohne Schnickschnack und ohne Control Panel entschieden. Der Server läuft sauber mit ca. 60MB Ram-Auslastung dank WP Supercache für Wordpress, XCache und einigen kleinen Optimierungen. Das einzige Problem ist die etwas unterschiedliche (im Vergleich zu Apache) Architektur des Webservers Lighttpd, was zur Folge hat, dass mod_rewrite Regeln aus einer .htaccess Datei nicht beachtet werden und man sich mit dem eigenen url.rewrite helfen muss. Nach einigem Zusammensuchen im Netz habe ich eine gute Konfiguration gefunden, die Einwandfrei funktioniert.

Die Rewrite-Regeln muss man dem Server noch beibringen, indem man die Konfiguration anpasst. Man öffnet die lighttpd.conf

nano /etc/lighttpd/lighttpd.conf

und fügt folgende Zeilen hinzu:

url.rewrite = (
"^/(wp-admin|images|wp-content|awstats)/{0,1}(?!no.css)(.*)" => "$0",
"^/sitemap/?$" => "/index.php?pagename=sitemap&pg=1",
"^/sitemap/([0-9]+)/?$" => "/index.php?pagename=sitemap&pg=$1",
"^/library/?$" => "/index.php?now_reading_library=true",
"^/library/tag/(.+)/?$" => "/index.php?now_reading_tag=true&now_reading_tag=$1",
"^/library/([0-9]+)/?$" => "/index.php?now_reading_single=true&now_reading_id=$1",
"^/page/([0-9]+)/?$" => "/index.php?paged=$1",
"^/date/([0-9]+)/?([0-9]+)/?$" => "/index.php?m=$1$2",
"^/date/([0-9]+)/?([0-9]+)/?([0-9]+)?$" => "/index.php?m=$1$2$3",
"^/feed/(feed|rdf|rss|rss2|atom)/?$" => "/index.php?feed=$2",
"^/(.+)/feed/(feed|rdf|rss|rss2|atom)/?$" => "/index.php?category_name=$1&feed=$2",
"^/(.+)/(feed|rdf|rss|rss2|atom)/?$" => "/index.php?category_name=$1&feed=$2",
"^/(.+)/([0-9]+)/[^/]+/?/feed/(feed|rdf|rss|rss2|atom)/?$" => "/index.php?category_name=$1&p=$2&feed=$3",
"^/(.+)/([0-9]+)/[^/]+/?/(feed|rdf|rss|rss2|atom)/?$" => "/index.php?category_name=$1&p=$2&feed=$3",
"^/(.+)/([0-9]+)/[^/]+/?/page/?([0-9]{1,})/?$" => "/index.php?category_name=$1&p=$2&paged=$3",
"^/(.+)/([0-9]+)/[^/]+/?([0-9]+)?/?$" => "/index.php?category_name=$1&p=$2&page=$3",
"^/(.+)/([0-9]+)/[^/]+/?/trackback/?$" => "/index.php?category_name=$1&p=$2&tb=1",
"^/category/(.+)/?$" => "/index.php?category_name=$1",
"^/?$" => "/index.php",
"^/([_0-9a-zA-Z-]+)/?$" => "/index.php?page_id=$1"
)
/etc/init.d/lighttpd restart

Anschließend startet man noch den Lighttpd Webserver neu und die Änderungen sollten Wirksam sein. Wenn es noch nicht auf Anhieb klappt auch an solche Sachen denken wie “Cache leeren” ;)
(via)