You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IIS URL重写问题:根站点仍强制要求身份验证

解决方案

1. 为MyDir路径添加匿名授权配置

当前web.config的根目录规则拒绝匿名用户访问,需要单独为MyDir路径配置允许匿名,避免.NET授权模块先拦截请求导致重写规则无法执行。在web.config的<configuration>节点内添加以下配置:

<location path="MyDir">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

该配置会让所有用户(包括匿名用户)直接访问/MyDir路径,跳过根目录的身份验证拦截。

2. 启用ARR反向代理功能

重写规则需要ARR代理支持才能转发请求到内部服务器,按以下步骤确认:

  • 打开IIS管理器,在服务器级别(非站点级别)找到Application Request Routing Cache。
  • 点击右侧Server Proxy Settings,勾选Enable proxy并保存设置。

3. 修正重写规则配置

针对你的转发需求,调整重写规则确保正确匹配与转发:

  • 匹配模式:使用正则表达式^MyDir(.*)$,覆盖所有以MyDir开头的路径(含子路径)。
  • 重写URL:设置为http://internalserver/MyDir{R:1},{R:1}会保留匹配到的后续路径,保证子路径也能正确转发。
  • 动作设置:勾选Stop processing subsequent rules,避免后续规则干扰;选择Rewrite模式(而非Redirect)以隐藏内部服务器地址。

4. 验证站点身份验证设置

  • 确认站点的匿名认证已正常启用(你已说明开启,再次确认避免配置失效)。
  • 根目录所需的其他认证(如表单认证)保持启用,不影响MyDir路径的匿名访问逻辑。

5. 测试与排查

  • 直接访问https://sub.example.com/MyDir,检查是否正常加载内部服务器的内容,而非跳转到登录页面。
  • 查看IIS日志(默认路径C:\inetpub\logs\LogFiles):若出现302状态码,说明仍被授权拦截,检查web.config的location配置;若出现502状态码,说明反向代理失败,检查内部服务器可达性或ARR配置。
  • 启用重写规则日志:在规则编辑页面点击View Trace Logs,查看规则是否匹配成功,定位具体问题。

内容的提问来源于stack exchange,提问作者Freeman Helmuth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 23:00:54