IIS 6重写规则,隐藏目录

5cnsuln7  于 2022-11-30  发布在  其他
关注(0)|答案(1)|浏览(147)

说我有域:www.test.com,并且我希望在服务器内部将其重定向到localhost:3000/folder 1/
我于是作了一次改写芸香

<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。我如何才能使该文件夹隐藏起来,并只在内部重写?

nx7onnlm

nx7onnlm1#

您可能应该学习如何使用Web浏览器来解决此类问题。
1.打开开发者工具并切换到网络选项卡(Chrome/Edge)。
1.重现问题并查看捕获了哪些请求/响应。
根据上面描述的规则和行为,重建场景并不困难,

  • 浏览器要求输入http://test.com
  • IIS重写规则生效,并将请求重写为http://localhost:3000/folder1/(这是{C:2}的解析方式)。
    *您的Web应用中的某些内容不喜欢结尾/,因此它生成了30 x重定向到/folder1

到那时,您的浏览器将以http://test.com/folder1结束。
因此,您当前有两个选项,

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

相关问题