I can't get IIS to respect my SSI directives - it just outputs the #include directive as if it were regular old html.

Here's the relevant data points:

  • My file with the include directive is called index.html
  • This is my directive: <!-- #include file = "header.shtml" --> (it doesn't work with virtual either.)
  • The file being requested is in the same directory as the file being


  • The SSI module is installed.
  • The SSINC-shtml handler mapping is present and enabled.

I think it might be some sort of permissions issue (read/write/execute), but I don't know where those settings are in IIS 7.5.


The problem is that the file is called index.html, which is not mapped to the SSI handler by default. Either:

  1. Map the .html file extension to the SSI handler which brings up another question OR
  2. Rename the file index.shtml

In IIS Mgr, click on the Server / site node (whichever level is appropriate for your environment) and click Handler Mappings. Double-click on the SSINC-shtml mapping, the click the Request Restrictions... button. Check the settings in all 3 tabs there and see if you've got something set improperly.

  • Can you elaborate on "improperly"? I saw that it has script access. – Josh Kodroff Mar 15 '11 at 14:06

Server-Side Includes are not enabled by Default in IIS 7 on Windows 7.

In Control Panel, Programs, Turn Windows features on off:

Check the option:

  Internet Information Services
    Application Development Features
      [x] Server-Side Includes
  • -1 for not reading that I have already installed the SSI module. – Josh Kodroff Mar 7 '11 at 21:53
  • Did you also enable Common HTTP Features \ Static Content? – Gordon Bell Mar 7 '11 at 22:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.