IIS 7–500 Internal Server Error trying to configure a default document in web.config — Rahul Singla

Imbibe Technologies
2 min readMar 16, 2018

I am in the process of deploying an osCommerce site to a Windows 2008/IIS 7 machine as I write this (no point debating the merit of doing so, you really can’t fight the management if they have taken a decision and you are not even a part of that particular decision making).

So they want a default document of let’s say index.html for their website from where they want to take the user to osCommerce’s main index.php based page. And I need to make the appropriate settings in web.config to have this going.

This should have been easy, IIS 7 supports specifying default documents through web.config and this is what I tried with initially (simply removing index.php from default documents and adding index.html):

<system.webServer> <defaultDocument enabled="true"> <files> <remove value="index.php" /> <add value="index.html" /> </files> </defaultDocument>

Only to be greeted with IIS “500 — Internal Server Error” page asking me to check IIS logs for details. Oh well, I don’t have access to the same and it would be a lot of bureaucratic process to get admin access. What could be the reason.

After some poking around, it struck me that index.html might already have been configured as a default document in machine.config and adding it again here might be causing the Internal server error due to duplicate default documents.

So I tried this and it worked:

<system.webServer> <defaultDocument enabled="true"> <files> <remove value="index.php" /> <remove value="index.html" /> <add value="index.html" /> </files> </defaultDocument> </system.webServer>

Which means if you are trying to configure default documents through web.config, it does not hurt to first <remove /> all documents that you are trying to <add /> to prevent duplicates leading to errors.

Originally published at https://www.rahulsingla.com on March 16, 2018.

--

--