Re同一台主机上如何实现2个域名进行泛解析
这跟主机没关系吧,一个IP对应一个空主机头
IIS6.0中默认网站就是用的空主机头,平时我们都是删除或者禁止的
如果你开启,所有解析到这个IP的,又没有特别指定主机头的域名都是使用这条主目录的
所以当你域名泛解析后,不管什么二级域名其实都是指向条空主机头站点的主目录的
无数年前大家提供二级域名服务就是利用这个原理,在主目录下建一个默认页面,主要是获得来路域名,然后分析前缀,然后跳转目录
想在服务器上增加一个空主机头的话,增加一个IP就行了。
但是这不意味着你没有多余的IP,没有多余的空主机头,就不能泛解析第二个第三个域名了
其实还是一样的道理,还是那个默认页面,既然可以分析前缀,也可以分析域名的,根据前缀和域名的不同跳转不同的目录
可以是虚拟目录 也可以是实际目录
可以隐藏目录的路径,也可以显示目录的路径
比如说我们假设你有一个 bbs.xxx.com
你在这个主目录下建一个Default.aspx 以及一个 bbs_xxx_com文件夹
Default.aspx因为是默认文件,所以每个泛解析域名都是先浏览这个文件的
所以在这这个文件里先获得 来路域名,知道是bbs.xxx.com 然后到数据库里比对到底是哪个文件夹, 然后就可以跳转到
bbs_xxx_com了
如果你用Response.Redrect("~/bbs_xxx_com")的话,那么你的路径就是显式的 就会是http//bbs.xxx.com/bbs_xxx_com
显然这比较难看
如果是Server.Transfer("~/bbs_xxx_com") 这样的跳转方式就隐藏路径的 浏览器显示的还是 http//bbs.xxx.com
但是还有个问题,就是内部路径的问题
比如实际路径是bbs_xxx_com/some/test.aspx,你不想他显示难看的http//bbs.xxx.com/bbs_xxx_com/some/test.aspx,想让他显示成
http//bbs.xxx.com/some/test.aspx
在II6.0下还是比较麻烦的,需要你自己写程序来处理,比如自己写路由来重定向,或者用urlrewrite之类的模块
如果是IIS7.5就比较方便了,IIS7.5,都不需要些那个Default.aspx处理文件,因为IIS7.5支持类似apache中的hactcess,就是web.config
你只要在主目录下加个带规则的web.config就行了,这个巨方便,和网站的语言无关,不管PHP也好
如果你是apache的话,更方便了,也有空主机头概念,而且支持301重定向哦 另外还有hactesss哦