Microsoft Azure Open Source Development Support Team Blog

Support for Open Source Technologies on Microsoft Azure App Service

WordPress MultiSite 404 on Admin Dashboard

If you are experiencing a 404 when switching to the dashboard of a given site, verify the web.config is accurate. We’ve found that older versions of WordPress have incorrect rules within web.config. Try the following web.config:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

<system.webServer>

<rewrite>

<rules>

  <rule name="WordPress Rule 1" stopProcessing="true">

     <match url="^index\.php$" ignoreCase="false" />

     <action type="None" />

  </rule>

  <rule name="WordPress Rule 2" stopProcessing="true">

     <match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" />

     <action type="Redirect" url="{R:1}wp-admin/" redirectType="Permanent" />

  </rule>

  <rule name="WordPress Rule 3" stopProcessing="true">

     <match url="^" ignoreCase="false" />

     <conditions logicalGrouping="MatchAny">

        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />

        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />

     </conditions>

     <action type="None" />

  </rule>

  <rule name="WordPress Rule 4" stopProcessing="true">

     <match url="^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*)" ignoreCase="false" />

     <action type="Rewrite" url="{R:2}" />

   </rule>

   <rule name="WordPress Rule 5" stopProcessing="true">

     <match url="^([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" />

     <action type="Rewrite" url="{R:2}" />

   </rule>

   <rule name="WordPress Rule 6" stopProcessing="true">

     <match url="." ignoreCase="false" />

     <action type="Rewrite" url="index.php" />

   </rule>

</rules>

</rewrite>

</system.webServer>

</configuration>