Skip to Main Content

We never recommend clients use IIS hosting for WordPress since “pretty” permalinks require mod_rewrite, and IIS (common on Windows servers) does not support mod_rewrite. If you are using Apache 2.0.54, on Windows, mod_rewrite may work, provided it is enabled in apache\conf\httpd.conf

If you are using IIS 7 and have admin rights on your server, you can use Microsoft’s URL Rewrite Module instead. Though not completely compatible with mod_rewrite, it does support WordPress’s pretty permalinks. Once installed, open the web.config file in the WordPress folder and add the following rule to the system.webServer element.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WordPress Rule" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php?page_id={R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

There’s a full installation guide on the IIS site. The module is available for x64 and x86 systems.

If this isn’t an option, you can try PATHINFO permalinks; put index.php/ at the start of your custom permalink structure so it looks like this:

 /index.php/%year%/%monthnum%/%day%/%postname%/

It’s far from ideal, but it’s better than /?id=”1234″.

Another solution exists using IIS’ custom 404 redirects. It requires that your web host allows you to add a custom 404 redirect, but it doesn’t require you to install any 3rd party mod_rewrite software and it also doesn’t require that your permalink structure begin with /index.php/. This site explains how to do it: Permalinks on IIS without ISAPI plugin.

Share the love:

Get the Email

Join 1000+ other subscribers. Only 1 digest email per month. We'll never share your address. Unsubscribe anytime. It won't hurt our feelings (much).

Preview Email