假设我有一个域名:www.test.com,我想在服务器内部将其重定向到localhost:3000/folder1/
然后重写
<rule name="Kofferslot" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{HTTP_HOST}" pattern="^(test.com|www.test.com)(.*)" />
</conditions>
<action type="Rewrite" url="http://localhost:3000/folder1/{C:2}" appendQueryString="false" />
</rule>
现在在地址栏中,如果我转到test.com
,它就变成了test.com/folder1
。我如何保持该文件夹隐藏,并在内部重写只?
你可能应该学习如何使用你的网络浏览器来解决这些问题。
- 打开开发人员工具并切换到网络选项卡(Chrome/Edge)。
- 重现问题并查看捕获的请求/响应。
根据你上面描述的规则和行为,重构场景并不难,
- 浏览器请求
http://test.com
. - IIS重写规则生效并将请求重写为
http://localhost:3000/folder1/
(这就是{C:2}
的解析方式) -
你的web应用程序不喜欢结尾的
/
,所以它生成一个30倍重定向到/folder1
。
到那时,您的浏览器将以http://test.com/folder1
结束。
因此,您目前有两个选项,
- 找到并禁用web应用中的重定向逻辑。
- 或者如果这是不可能的,修改你的重写规则,总是忽略结尾的
/
。