IIS is de webserver die met Windows Server wordt meegeleverd, waar je hem als systeemrol inschakelt. Je kiest er vooral voor in Microsoft-omgevingen, voor ASP.NET-applicaties, maar hij kan ook PHP uitvoeren en dus WordPress. Het is ook de server die panelen als Plesk op hun Windows-servers gebruiken.
Hoe IIS PHP uitvoert
Sinds IIS 7.0 kun je met een FastCGI-onderdeel PHP en andere talen draaien; volgens Microsoft is dat in IIS 10.0 niet veranderd. De installatie volgt drie stappen die Microsoft Learn beschrijft:
- de rolservice CGI installeren, die de FastCGI-module registreert;
- een FastCGI-applicatie aanmaken die naar het uitvoerbare bestand van PHP wijst, bijvoorbeeld
C:\PHP\php-cgi.exe; - een handlertoewijzing maken die de
*.php-bestanden aan FastCgiModule geeft.
De PHP-site raadt hiervoor de "Non-Thread Safe"-versies (NTS) aan, die voor FastCGI zijn ontworpen; de "Thread Safe"-versies zijn bedoeld voor Apache, wanneer PHP als module wordt geladen. PHP-FPM, dat onder Linux veel samen met Nginx wordt gebruikt, is hier niet het gereedschap: IIS beheert zelf zijn php-cgi.exe-processen, met instellingen als het maximale aantal instanties of verzoeken voordat een proces wordt vernieuwd.

web.config en URL Rewrite
IIS leest de .htaccess van Apache niet. De configuratie staat in applicationHost.config op serverniveau, of in web.config-bestanden op het niveau van een site of map. Voor het herschrijven van URL's is de module URL Rewrite nodig, die je los downloadt, die werkt van IIS 7 tot IIS 10 en die mod_rewrite-regels van Apache kan importeren.
WordPress kan zijn permalinkregels zelf in de web.config schrijven. Dat doet het alleen als aan de voorwaarden is voldaan: IIS 7 of hoger, de module URL Rewrite geladen en PHP uitgevoerd via FastCGI, zoals de functie iis7_supports_permalinks() controleert.
Voor WordPress
- PHP-versie: onder Windows moet je nieuwe PHP-versies vaak zelf installeren. Volg de end-of-life-kalender van PHP en laat geen oude versie staan.
- Het PHP-CGI-lek: in 2024 trof het lek CVE-2024-4577 PHP in CGI-modus onder Windows met bepaalde systeemtalen. Controleer je versie en je configuratie.
- Vervang de web.config niet: voeg je regels toe aan de bestaande rewrite-sectie, zonder die van WordPress te wissen.
- Bestandsrechten: de identiteit van de application pool moet in wp-content/uploads kunnen schrijven, maar niet in de hele site.
WP Masquerade ondersteunt IIS: de aliasregels van de Pro-versie horen in de sectie system.webServer/rewrite/rules van de web.config, zoals de pagina compatibiliteit met hosters en caches aangeeft.
Veelgemaakte fouten
De Thread Safe-versie van PHP voor IIS installeren, de module URL Rewrite vergeten en dan zoeken waarom de permalinks 404-fouten geven, of .htaccess-regels zonder omzetting in een web.config plakken: IIS begrijpt de syntaxis van Apache niet zomaar.