Wordpress en Windows Server
Op zich niet zo’n ramp natuurlijk. Totdat je URL rewriting wil gaan gebruiken om je permalinks wat op te pimpen!
Deze site draait op Windows 2003 Web Edition met Plesk als beheer tool. Voorheen gebruikte ik alleen bij mijn zakelijk domein ISAPI_Rewrite Lite (Max 1 domein) van Helicon Tech, toch wel cool dat een Microsoft Developer nog iets gratis ter beschikking stelt, dit zie je namelijk niet veel meer tegenwoordig. Toch maar besloten om de full version aan te schaffen, voor 70 euro inclusief BTW heb je een server licentie (geschikt voor 1 machine, maar meerdere domeinen dus). En knallen maar…
Allereerst het geintje om ISAPI_Rewrite Lite te deinstalleren. Dit lukte dus niet omdat de geweldige Uninstall Shield Wizard een kritieke fout geeft als je dit probeert (de hele machine slaat zowat vast hierdoor). Dit is simpel op te lossen door in IIS6 het ISAPI filter uit te schakelen voor de webservice (deze instelling werkt dan server-wide door). Vervolgens probeerde ik mijn zakelijke domein meteen te openen om te zien of de full install van ISAPI_Rewrite het boeltje had overgepakt van de Lite versie. Helaas was dit ook niet het geval. De full versie installeert een tooltje om alle websites binnen IIS6 eenvoudig te beheren. Bij controle van het domein was de .htaccess helemaal leeg.
Blijkt ten eerste dat ISAPI_Rewrite Lite zijn .htaccess configuratie opslaat in C:\Program Files\Helicon\ISAPI_Rewrite_Lite\ in httpd.ini. Even httpd.ini leegmaken en de inhoud verplaatsen naar .htaccess in de juiste folder voor het domein en voila, het werkt. Dat was dus issue een. Enfin, digitael.nl aangemaakt in Plesk (vergeet niet MySQL support aan te zetten), Wordpress geinstalleerd, ingelogd in de wp-admin “en hij zag dat het goed was”. Maar toen ik naar de root van het domein surfde, kwam er geen blog. Issue nummer twee is dat je die automatisch gegenereerde link-naar-plesk-pagina eraf moet gooien, genaamd: index.php. Deze is dus niet aangemaakt door Wordpress omdat de files niet overgeschreven worden tijdens de installatie van Wordpress. Je moet deze even handmatig uploaden via FTP zodat de correcte index verschijnt.
Vervolgens heeft yours-truly een extra test-post gemaakt, nog een commentje geplaatst om alles te verifieren en alles werkte zoals het hoorde. Toen kwam de perma-link section aan de beurt in de wp-admin. Ik heb gekozen voor een custom rewrite rule: /%year%/%monthnum%/%postname%/. Dit zorgt voor de volgende structuur: http://www.domeinnaam.nl/2008/09/postnaam-hier/
Wordpress is in staat om zijn eigen .htaccess weg te schrijven (bij voldoende permissies), al is dit met Plesk beveiligd (de files worden gelocked). Wel kun je via de Helicon Manager de code in de htaccess file plakken indien dit niet automatisch gebeurd. Helaas werkte het op dit moment voor mij nog niet, ik ben een hele dag bezig geweest met debuggen waarom het bij digitael.nl niet werkte en op het andere domein wel. Verschillende regeltjes geprobeerd, htaccess van andere domein gekopieerd en zelfs zelf een regeltje geschreven en met behulp van een regex tool gekeken of de uitkomst juist was.
Niks van dit bovenstaande werkte helaas. Tot slot ben ik alle domein-instellingen nagelopen (dit domein was de eerste met PHP support op de Windows Server, dus hier kon wellicht ook iets vreemds ingesteld staan. Ik kwam tot de conclusie dat ASP.NET support uit stond gevinkt op digitael.nl (ik gebruik immers alleen PHP dus de rest kon uit dacht ik). Bij het andere domein stond ASP.NET wel ingeschakeld, maar deze maakt gebruik van ASP Classic en ASP.NET, dus dat is dan logisch.
Toch maar even proberen! En ja hoor, 1x reloaden was genoeg om de configuratie van Wordpress in te laden. De permalinks werkten direct. Wat blijkt nu, omdat de DLL file van Helicon ISAPI_Rewrite in ASP.NET is geschreven, is ASP.NET support dus nodig onder het domein waarbij je htaccess wil gaan gebruiken.
Mocht je dus issues hebben met deze ISAPI plugin van Helicon, check dan eerst even of ASP.NET support staat aangevinkt in de Plesk domein setup.
Tags: Helicon, ISAPI, ISAPI_REWRITE, PHP, Windows Server, Wordpress











