NetBox 2.7 使用手册

AddHost 方法

为已经创建的服务器添加新的虚拟主机

语法

Set host = httpd.AddHost(hostName, RootPath)
 

参数

host
返回新创建的主机对象,为 HttpServerHost 对象

httpd
一个实例化的 HttpServer 对象

hostName
虚拟主机的主机名

RootPath
虚拟主机的根目录,参见 NetBox 的路径系统

注释

新创建的 HttpServer 对象不包含主机信息,为了能够理解和正确处理客户的请求,必须为对象添加新的主机信息。

在添加新的虚拟主机时,hostName 用于指定虚拟主机的主机名,比如,如果希望建立一个虚拟主机 www.zydsoft.com,则可是使用下面的代码:

httpd.AddHost "www.zydsoft.com", ...

服务器在进行主机匹配的时候是通用匹配的,所以上面的代码建立了一个所有的 *.www.zydsoft.com 和 www.zydsoft.com 都能够匹配的虚拟主机。而如果希望建立一个 www.zydsoft.com 和 web.zydsoft.com 等所有的 *.zydsoft.com 都可以匹配的虚拟主机,则可以使用下面的代码:

httpd.AddHost "zydsoft.com", ...

可以在一个服务器上创建多个新的虚拟主机,服务器将按照最符合的主机进行匹配,服务器对虚拟主机的匹配顺序与主机的添加顺序没有关系,只与主机的匹配程度有关。比如下面例子建立了两个虚拟主机:

httpd.AddHost "zydsoft.com", ...
httpd.AddHost "www.zydsoft.com", ...

如果客户请求了 my.www.zydsoft.com,两个主机都是可以匹配的,在这种情况下,服务器将匹配最接近的主机,即 www.zydsoft.com。

也可以使用空字符串作为 hostName 使用,此时则创建了一个完全通配的虚拟主机,即如果服务器搜索了全部主机信息,没找到合适的主机进行匹配,则自动使用此主机。比如下面的例子:

httpd.AddHost "zydsoft.com", ...
httpd.AddHost "www.zydsoft.com", ...
httpd.AddHost "", ...

如果客户请求 www.intel.com,则在前面两个主机中都不能匹配,服务器便会使用最后一个虚拟主机进行匹配。

AddHost 方法将返回一个 HttpServerHost 对象,可以使用此对象进行进一步的设定。同时 AddHost 方法会将此对象存放在 httpd.Contents 集合中,可以使用 httpd(hostName) 取得。下面代码中 host 与 host1 是同一个主机对象:

Set host = httpd.AddHost("zydsoft.com", ...)
Set host1 = httpd("zydsoft.com")

示例

下面的例子创建一个新的 HttpServer 对象,在 80 端口建立一个服务器,然后添加一个虚拟主机:

Set httpd = CreateObject("NetBox.HttpServer")
httpd.Create "", 80
Set host = httpd.AddHost("", "\wwwroot")

应用于

HttpServer 对象
版权所有: 2003- 网络盒子