Installing WordPress in a subdirectory in a .NET application

When you install WordPress as a root web app using Web Platform Installer, everything just works. ¬†However, adding a WordPress blog to a subdirectory (e.g. /blog) needs quite a few extra steps beyond the base install¬†to get everything ‘working’.

Installing PHP

I used the PHP 7 32 bit. Before installing it you will need the Visual C++ Redistributable (again 32 bit)!

Web.config in sub directory

<?xml version="1.0" encoding="UTF-8"?>
      <rule name="wordpress" patternSyntax="Wildcard">
        <match url=".*"/>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
        <action type="Rewrite" url="index.php"/>

Web.config in root

No changes required


The web.config in the root must have a few permissions added to it before things will work. Add IUSR(Should already by on) and IIS_IUSRS. This will allow the subdirectory to access the parent.

Virtual Application and App Pool

  • Remove the default application and app pool that the wordpress install created.
  • Create a new app pool (unmanaged code) and set the Identity (advanced settings) to LocalSystem
  • Re-add the virtual application and ensure you use the new app pool created above.

Uploads and Imports

To enable uploads to work I had to make a few changes

  • Php uploads to C:\Windows\Temp and then copies to the uploads directory. The problem is that the permissions get inherited. Create a new directory, add IIS_IUSRS permissions and update PHPini.php to point to this as the temp uploads folder.
  • Also in the wp-admin directory I found I needed to add a new phpini.php to allow for better memory management, as a relatively small data import would cause it to tank. Not sure if this is a required step but it seemed to help!



memory_limit = 128M


So there you have it. There is definitely a learning curve to this if you’re not from PHP land, but overall the installation seems to be working!


A selection of resource that came in very handy to making this all happen!

Leave a Reply

Your email address will not be published. Required fields are marked *