This was actually a question of mine when I got stuck with all these re-write rules. I must say that I still don’t understand them fully, but nonetheless here is a perfectly working solution.

my original web.config file looked like this:

<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name=”wordpress” patternSyntax=”Wildcard”>
<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” />
</rule>
</rules>
</rewrite>
<caching enabled=”false” enableKernelCache=”false” />
<staticContent>
<clientCache cacheControlMode=”DisableCache” />
</staticContent>
</system.webServer>
</configuration>

Where it says:

<rule name=”wordpress” patternSyntax=”Wildcard”> change it to patternSyntax=”ECMAScript”

and where is has <match url=”*” /> change it to <match url=”.*” />

Done.

Here’s the whole thing you can just block copy.

<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name=”wordpress” patternSyntax=”ECMAScript”>
<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” />
</rule>
</rules>
</rewrite>
<caching enabled=”true” enableKernelCache=”true” />
<staticContent>
<clientCache cacheControlMode=”DisableCache” />
</staticContent>
</system.webServer>
</configuration>

Simon