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

IIS Url Rewrite子目录访问异常问题求助

问题分析与解决方案

问题出在你的反向代理入站规则上——当前配置没有将请求的子路径传递给内部服务器:

<rule name="ReverseProxyInboundRule1" stopProcessing="true">
    <match url="(.*)" />
    <action type="Rewrite" url="http://192.168.1.12:8081/" />
    <!-- ... 其他配置 ... -->
</rule>

这里的url固定指向内部服务器的根目录,不管请求的是/subfolder/doc.html还是其他路径,都会被代理到http://192.168.1.12:8081/,所以始终返回默认文档。

修改方案

将入站规则的action节点中url的值修改为包含捕获到的路径参数{R:1},这样就能把请求的完整路径传递给内部服务器:

<rule name="ReverseProxyInboundRule1" stopProcessing="true">
    <match url="(.*)" />
    <action type="Rewrite" url="http://192.168.1.12:8081/{R:1}" />
    <serverVariables>
        <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
        <set name="HTTP_ACCEPT_ENCODING" value="eee" />
    </serverVariables>
</rule>

{R:1}对应<match url="(.*)"/>捕获到的所有路径内容,当你访问www.website.com/subfolder/doc.html时,请求会被代理到http://192.168.1.12:8081/subfolder/doc.html,内部服务器就能正确返回对应文档。

额外优化建议

你的出站规则中部分规则只匹配了http://192.168.1.12:8081/的链接,建议统一调整为支持http和https的模式,比如把CustomAnchorHref的匹配模式改成:

<match filterByTags="None" pattern="href=(.*?)http(s)?://192.168.1.12:8081/(.*?)\s" />

这样能同时处理http和https的内部链接替换,避免出现链接异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:36:07