IIS 6重写规则,隐藏目录



假设我有一个域名: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。我如何保持该文件夹隐藏,并在内部重写只?

你可能应该学习如何使用你的网络浏览器来解决这些问题。

  1. 打开开发人员工具并切换到网络选项卡(Chrome/Edge)。
  2. 重现问题并查看捕获的请求/响应。

根据你上面描述的规则和行为,重构场景并不难,

  • 浏览器请求http://test.com.
  • IIS重写规则生效并将请求重写为http://localhost:3000/folder1/(这就是{C:2}的解析方式)
  • 你的web应用程序不喜欢结尾的/,所以它生成一个30倍重定向到/folder1

到那时,您的浏览器将以http://test.com/folder1结束。

因此,您目前有两个选项,

  • 找到并禁用web应用中的重定向逻辑。
  • 或者如果这是不可能的,修改你的重写规则,总是忽略结尾的/

相关内容

  • 没有找到相关文章

最新更新