首页 > 代码库 > IIS 之 IIS 7及以上多域名或端口绑定同一物理目录并设置不同默认文档

IIS 之 IIS 7及以上多域名或端口绑定同一物理目录并设置不同默认文档

  今天在 IIS 7 多端口或域名绑定同一物理目录,设置不同的默认文档遇到问题:同一物理目录的多个站点修改任意一个站点默认文档都会一起更改。

  原因:在同一个物理目录下只有一个 web.config,并且 IIS7 把默认文档设置写在这里,导致所有域名的默认文档设置共享。

  解决方案:

  比如我们把 www.ExampleA.com 和 www.ExampleB.com 两个域名都指向 E:\WebTest 文件目录,想把 www.ExampleA.com 的默认文档设为目录下的 indexA.html,www.ExampleB.com 的默认文档设为目录下的 indexB.html。

  1、新建两个站点,一个叫 WebA(站点名字自定义),指向 E:\WebTest 文件夹,绑定域名 www.ExampleA.com;另一个叫 WebB,指向 E:\WebTest 文件夹,绑定域名www.ExampleB.com。

  2、进入%windir%\system32\inetsrv\config目录(%windir%即windows的安装目录,比如c:\windows)。

  3、找到 applicationHost.config 文件,用文本编辑器打开。

  4、在最后 configuration 节中加入如下语句

  <location path="WebA">
         <system.webServer>
            <defaultDocument enabled="true">
               <files>     
                     <clear/>
                     <add value="indexA.html"/>
               </files>
            </defaultDocument>
        </system.webServer>
    </location>
    <location path="WebB">
         <system.webServer>
            <defaultDocument enabled="true">
               <files>     
                     <clear/>
                     <add value="indexB.html"/>
               </files>
            </defaultDocument>
        </system.webServer>
    </location>

  5、注意要删除物理目录下 web.config 文件中关于默认文档的设置。

IIS 之 IIS 7及以上多域名或端口绑定同一物理目录并设置不同默认文档