Windows环境下多域名指向同一服务器不同目录的实现方法
Windows下多域名指向同一服务器不同目录的解决方案
一、先修复你原来的ASP脚本(解决跳转失效问题)
你的脚本失效主要有两个原因:HTTP_HOST只返回纯域名(不带http://和末尾斜杠),且存在语法错误。修复后的脚本如下:
<% dim host, pagina host = LCase(request.servervariables("HTTP_HOST")) SELECT CASE host CASE "androideilbello.ddns.net" pagina = "/tony/index.html" CASE "iptest5" pagina = "/Dashboard/index.html" CASE "www.topolino.com" pagina = "default.htm" CASE "www.minnie.it" pagina = "/minnie/index.html" CASE ELSE pagina = "/default.html" ' 可选:添加默认跳转 END SELECT Response.Redirect(pagina) %>
注意:
HTTP_HOST的值是域名本身,比如访问http://androideilbello.ddns.net时,host变量是androideilbello.ddns.net,不要加协议和斜杠。- 确保脚本放在站点的根目录,且IIS已启用ASP支持(IIS管理器→站点→功能视图→ASP,确保状态为启用)。
二、更推荐的IIS原生配置方案(无脚本,服务器端映射)
用ASP跳转是客户端重定向,体验不如IIS原生的站点绑定/目录映射,推荐以下两种方法:
方法1:创建多个独立站点(最直观)
- 打开IIS管理器,右键左侧的「网站」→「添加网站」。
- 填写参数:
- 站点名称:自定义(比如Sito1)
- 物理路径:选择目标目录(注意Windows路径是
C:\root\pippobaudo,不是Linux的/root/) - 绑定:
- IP地址:选择服务器的内网/公网IP
- 端口:默认80(HTTPS用443)
- 主机名:填写
www.sito1.com
- 点击「确定」完成创建,重复步骤创建第二个站点,绑定
www.sito2.com,物理路径设为C:\root\site2。 - 给每个目录设置权限:右键目录→「属性」→「安全」,添加
IIS_IUSRS用户,赋予「读取」权限。
方法2:单站点+URL重写(适合不想多站点的场景)
如果不想创建多个站点,可通过IIS的URL重写模块实现域名到目录的映射:
- 先安装URL重写模块:打开IIS管理器→「管理工具」→「Web平台安装程序」,搜索「URL Rewrite」安装。
- 进入目标站点的「URL重写」功能,点击右侧「添加规则」→「空白规则」。
- 配置规则(以
www.sito1.com为例):- 名称:自定义(比如Sito1_Dir_Map)
- 匹配URL:
- 请求路径:匹配「通配符」
- 模式:
*
- 条件:添加条件,输入
{HTTP_HOST},匹配模式选「正则表达式」,内容为^www\.sito1\.com$ - 操作:
- 操作类型:「重写」
- 重写URL:
/pippobaudo/{R:0}({R:0}表示保留原请求路径) - 勾选「追加查询字符串」
- 重复步骤添加其他域名的规则,比如
www.sito2.com对应重写URL为/site2/{R:0}。
内容的提问来源于stack exchange,提问作者Tony Giuga
相关产品推荐
相关产品推荐

