IIS URL Rewrite/HTTP Redirect在内网Web应用中无法生效问题咨询
排查与解决方案
核心配置逻辑错误说明
你混淆了主机名路由和路径路由的配置逻辑:你的需求是同一个主机名servername下的不同路径映射到同一应用,不需要新增DNS解析记录、也不需要新建站点。你的错误配置导致请求被路由到了新建的空站点,因此仅显示IIS默认主页。
步骤1:清理错误配置
- 删除你为
differentnameforapp新建的IIS站点,避免80/443端口绑定冲突 - 删除无用的DNS CNAME记录,
servername本身已经能正确解析到服务器IP,不需要额外的主机名解析
步骤2:选择任意一种方案配置路径映射
方案A:虚拟目录(推荐,无跳转,用户地址栏保留differentnameforapp路径)
- 打开IIS管理器,定位到承载原
appname子应用的Default Web Site - 右键点击
Default Web Site→ 选择「添加虚拟目录」 - 别名栏填写
differentnameforapp,物理路径选择原appname子应用对应的本地文件夹路径 - 右键点击刚创建的
differentnameforapp虚拟目录 → 选择「转换为应用程序」,应用池选择和原appname应用完全一致的应用池 - 执行
iisreset命令重启IIS服务即可生效
方案B:URL重写规则(需要保留原appname路径的访问能力)
如果需要通过重写规则实现,直接在Default Web Site上配置入站规则即可:
- 选中
Default Web Site,打开「URL重写」功能 - 点击「添加规则」 → 选择「入站规则 - 空白规则」
- 按以下参数配置:
- 匹配URL:请求的URL选择
与模式匹配,使用正则表达式,模式填写^differentnameforapp(.*) - 操作:操作类型选
重写(静默改写,用户地址栏不变)或重定向(301/302跳转,地址栏会变为appname路径) - 重写/重定向URL:填写
appname{R:1},勾选「追加查询字符串」
- 匹配URL:请求的URL选择
- 保存规则后重启IIS即可生效
验证
清理浏览器缓存后访问servername/differentnameforapp,确认应用可以正常加载,同时原servername/appname访问不受影响。
内容的提问来源于stack exchange,提问作者DiddlyKong
相关产品推荐
相关产品推荐

