Shtml on iis wtf?

  • anybody ever seen a problem like this?  A client has a file named index.shtml which I can access just fine so long as I access it like this:

    http://domainname/   (meaning, get the default document, which happens to be index.shtml)

    however, if I try to go directly to the page like this:


    it doesn't work.  I get a 404.  In fact, I cant hit any shtml file.  If I create a file  text.shtml I can't hit it.  But when it's the default document it works just fine - and I know that the default document is reading index.shtml because I edited it and saw the changes appear.

    It's got to be a security thing, but I can't find anything in MS' knowledgebase.  The google, she does nothing.


  • In your search, did you find this?

    Might be the answer if you have IIS 6. There is also this:

    Q.IIS 6.0 will not serve my .shtml files. How can I fix this?

    You must verify two configuration options to ensure that IIS 6.0 serves .shtml files. Because a .shtml file contains server-side directives, Server Side Includes must be set to "Allowed" in the IIS Manager Web Service Extensions
    node. In addition, if the default document on your Web site contains
    the .shtml extension, the file name and extension must be added to the
    default content page list on the Documents tab of the Web site Properties page.


    Finally, under Web Site Properties > Home Directory > (configuration button) > Mappings (tab) - is .shtml listed there under the extensions?

  • thanks for trying to help.  Note that .shtml extensions were obviously turned on, because IIS would serve them if it was the default document.

    the problem turns out to have been urlscan.  There is a section in its config file for disallowed extensions.  I'm not sure why he had .shtml in there.  I've never seen this problem before.  Anyway, he edited the config file for urlscan and restarted the server and everything works now.

Log in to reply

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.