Christian Lechner

WordPress unter IIS…

auf Facebook teilen auf Tumblr teilen auf StumbleUpon teilen

Wer ein WordPress Blog unter einem IIS-Webserver laufen lassen will, hat eigentlich keine Probleme damit, außer mit mod_rewrite. Doch wie bringt man dem IIS das URL-Rewriting bei?

Mit Bordmitteln ist das leider nicht so einfach, da man in der Web.config leider nur statische Adressen “rewriten” kann, nennt sich in dem Fall UrlMapping. Eine eigene Funktion in der global.asax Datei wäre auch möglich oder gar ein eigenes Modul, wozu man natürlich Admin-Rechte benötigt.

Was macht nun aber jemand, der z.B. Webspace auf einem IIS hat und dort ein WP installieren möchte?
Die Lösung ist einfach und genial:
eine PHP-Seite, die als Standard-404-Fehler-Seite definiert wird:

< ?php
$qs = $_SERVER['QUERY_STRING'];
$pos = strrpos($qs, '://');
$pos = strpos($qs, '/', $pos + 4);
$_SERVER['REQUEST_URI'] = substr($qs, $pos);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
?>

In den neueren Versionen von WP (glaube >= 2.0) kann der Pfad, so aussehen:
entweder mit ID: index.php?p=123
ohne URL-Rewrite: index.php/2008/01/02/Titel-des-Posts/
mit URL-Rewrite: /2008/01/02/Titel-des-Posts/

Das obige Script wird aufgerufen, wenn ein physikalisches Verzeichnis nicht existiert, liest den Query-String ein, setzt die Server-Variable und inkludiert die index.php von WP.
Nun erfüllt das Script die selbe Funktion wie mod_rewrite.



Kommentar verfassen