一个目录中的IIS多个站点

想象下面的目录结构:

c:\websites\users\dave\ c:\websites\users\dave\www.mysite1.com c:\websites\users\dave\www.mysite2.com c:\websites\users\alan\ c:\websites\users\alan\www.oursite1.co.uk c:\websites\users\alan\www.oursite2.co.uk 

据我所知,为了使这项工作,我需要在IIS中build立四个独立的网站。 我真正想做的就是让dave和alan通过FTP访问c:\websites\users\dave\c:\websites\users\alan\目录,然后就可以创build全新的网站创build一个新的www.mysite3.com目录并将该域指向正确的IP地址, 而不需要在IIS中添加新的网站。

这甚至有可能吗?

你不能创build一个额外的网站。 没有一个不同的IP绑定或主机头,IIS无法知道要提供什么内容。

但是,您可以在站点的根目录下设置某种脚本,通过分析传入请求的主机头来redirect到正确的内容。 例如,你将所有的站点指向相同的IP,然后redirect.aspx / php / py /任何查看主机头,并redirect到正确的内容。

没有我们需要在IIS中添加一个新的网站。

不可能。 IIS需要知道如何路由请求。 权利需要build立。 但主要是 – 你需要IISconfiguration。

正如其他人所说,我会重复,你不能创build一个额外的网站。

但是,你可以假冒它,特别是如果他们遵守你上面列出的命名约定。 你所做的是创build一个计划任务,检查这些用户目录的子级别。 当它find一个看起来正确的dirname时,它会运行一些为你创build网站的命令。 在PowerShell中创build脚本,这比简单的batch file提供了更好的string处理语义和错误检查。 每15分钟运行一次。

一些关键命令:

添加一个网站:

 appcmd add site /name:"www.mysite1.com" /bindings:http://www.mysite1.com:80/ /physicalPath:"c:\websites\users\dave\www.mysite1.com" 

删除网站:

 appcmd delete site "www.mysite1.com" 

看看一个网站是否已经存在:

 appcmd list site "www.mysite1.com" 

'appcmd'utiltiy位于C:\Windows\System32\Inetsrv\ 。 使用上述命令创build的站点将使用主机头来确定服务器将要提供哪个站点。

这是正确的轨道。 在该目录path中设置您的站点,然后为每个将为站点文档根目录服务的目录创buildIIS站点。

创buildFTP,使用相应的文档根目录来设置每个FTP站点,以匹配他们应该访问的站点。 通过修改NTFS权限来保护其他文档根目录ftp,使用Allow或Deny来设置ACL。 为那些不能读取和写入这些方向的用户设置拒绝规则。

您可以有一个IIS站点,并具有多个主机名标题。 然后有一个默认的文件,比如index.aspx。 然后,代码可以检测您指定并转到的URL,例如./dave/www.mysite1.com/index.aspx。