win2008的IIS7和win2012的IIS8多域名绑定同一物理目录设置不同默认文档的解决方法
今天遇到了IIS7多域名绑定同一物理目录,设置不同的默认文档的问题,因为在一个物理目录下只有一个web.config,并且IIS7把默认文档设置写在这里,导致所有域名的默认文档设置共享,很多人对此束手无策,甚至有人说这是IIS7的bug。
既然不能像win2003那样方便直接绑定指定就行,我们只能麻烦点了。
下面是解决方案:
比如我们把www.tuku168.com和bbs.tuku168.com两个域名都指向D:\tuku168文件夹 想把www.tuku168.com的默认文档设为目录下的index.html,bbs.tuku168.com的默认文档设为目录下的index2.html
1、新建两个站点,一个www.tuku168.com,都指向D:\tuku168文件夹,绑定域名www.tuku168.com;另一个叫bbs.tuku168.cm。
然后给目录下的web.config文件中设置默认文档的那段代码给删了,注意别多删。
2、进入%windir%\system32\inetsrv\config目录(%windir%即windows的安装目录,比如c:\windows)
3、找到applicationHost.config文件,用文本编辑器打开
4、在最后configuration节中加入如下语句,其实一般在这个文件里能看到带域名的代码部分,替换成下面的就行,按照域名替换成你自己的就行了。
1 <location path=www.tuku168.com>
2 <system.webServer>
3 <defaultDocument enabled="true">
4 <files>
5 <clear/>
6 <add value="index.htmk"/>
7 </files>
8 </defaultDocument>
9 </system.webServer>
10 </location>
11 <location path="bbs.tuku168.com">
12 <system.webServer>
13 <defaultDocument enabled="true">
14 <files>
15 <clear/>
16 <add value="index2.html"/>
17 </files>
18 </defaultDocument>
19 </system.webServer>
20 </location>
注意:location节点path是域名名称,add节点value是文件路径。
如果上面的方式你还看不明白不会使用,那么请放弃2个域名绑定一个物理目录的使用方式吧!