If you’re running WordPress on IIS and experiencing an issue where navigating to /wp-admin results in either a blank page or a 404 error, you may need an additional rule in your .htaccess file. Generally you’ll find that, assuming you’re set up properly, you can reach the admin section by appending /index.php to the URL, but who wants to do that every time?
If you’re not already up and running with Rewrites on your Windows Server, check this post on Setting up URL Rewrites for WordPress under IIS on a Windows Server.
The rule necessary tells the standard permalink rules to ignore the wp-admin directory when performing rewrites. Simply add the following condition to your .htaccess file:
RewriteCond %{REQUEST_URI} !^/(wp-admin|wp-admin/.*)$
The full, standard .htaccess file will now look something similar to this:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_URI} !^/(wp-admin|wp-admin/.*)$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
This rule also comes in handy if you want to host some content or additional apps under the same domain that you have WordPress running on. Normally WordPress will highjack the request and you won’t be able to reach the sub-directory, but by adding addional rules to your .htaccess file you can overcome this.
To do so, add another condition for each directory you want WordPress to ignore:
RewriteCond %{REQUEST_URI} !^/(someDirectory|someDirectory/.*)$