为什么IIS 7.5在文件夹上添加一个尾随斜杠?我们可以为删除尾部斜杠的URL重写规则禁用礼貌重定向吗?

为什么IIS 7.5在文件夹上添加一个尾随斜杠?我们可以为删除尾部斜杠的URL重写规则禁用礼貌重定向吗?,iis,url-rewriting,iis-7.5,trailing-slash,Iis,Url Rewriting,Iis 7.5,Trailing Slash,IIS通过添加尾随斜杠对目录进行URL清理。请参阅IIS 6中的旧文档: 为什么??意图是否仍然相关 有什么安全隐患吗 如何使用URL重写规则“RemoveRailingSlashRule”禁用它以使其正常工作 在IIS 7.5下添加URL重写为2的规则时,该规则将不会应用于目录(使用IsDirectory)和文件夹(使用IsFolder) 请参阅“添加规则以附加或删除尾部斜杠符号”上的警告: 这将创建RemoveRailingSlashRule1: 我对儿童IIS应用程序的具体情况有一个答

IIS通过添加尾随斜杠对目录进行URL清理。请参阅IIS 6中的旧文档:

  • 为什么??意图是否仍然相关
  • 有什么安全隐患吗
  • 如何使用URL重写规则“RemoveRailingSlashRule”禁用它以使其正常工作
  • 在IIS 7.5下添加URL重写为2的规则时,该规则将不会应用于目录(使用IsDirectory)和文件夹(使用IsFolder)

    请参阅“添加规则以附加或删除尾部斜杠符号”上的警告:

    这将创建RemoveRailingSlashRule1:

    我对儿童IIS应用程序的具体情况有一个答案:。儿童应用程序似乎是常见的罪魁祸首,但在这个问题中没有明确描述

    为了回答这些问题,以下是我多年来与IIS和微软打交道的一些看法。我没有可靠的资料可供引用;有些只是直觉

  • 为什么??意图是否仍然相关
  • 我认为它源于原始的“默认文档”特性,即index.html。网站希望他们的主页只是一个域,然后扩展到子文件夹。有了url重写,意图就不再相关了——你可以重写你内心的内容,而宁愿IIS让开。通常需要友好的URL,并且没有尾随斜杠(除了域/网站根-这需要有尾随斜杠,即使像Chrome这样的浏览器变得可爱并隐藏它)

  • 有什么安全隐患吗
  • 我认为唯一的安全隐患是原始目录浏览。如果您忘记执行默认文档,而目录浏览处于打开状态,则人们可以浏览您的网站文件。据我所知,长期以来,目录浏览作为默认设置一直处于禁用状态

    对于任何请求,无论是否有尾随斜杠,url重写与否,您的服务器和代码都需要承受错误的请求。这适用于所有情况,而不仅仅是特定于斜杠

  • 如何使用URL重写规则“RemoveRailingSlashRule”禁用它以使其正常工作
  • 如果问题是儿童申请,我有一个答案,在这里: 在IIS中,摘要是:

    • 禁用子应用程序的默认文档功能
    • 使用Url重写,创建一个规则,将空请求重写(而不是重定向)到default.aspx

    如果这个问题是一个更一般的问题,包括正则子文件夹,即使不是子应用程序,考虑从规则中删除“不是目录”,即使在看到目录时也让它重定向。这可能有效,也可能造成无限重定向循环,我不确定。

    很遗憾,这一问题没有答案。我也遇到了。你能找到任何解决办法或更多关于这方面的信息吗?对不起,我也一直在想这个问题。我认为应用程序就是问题所在,IIS将其视为需要尾部斜杠的网站根。我甚至在主网站上尝试了一个“抓取”页面,该页面从子网站发出请求/响应,但IIS似乎在任何重写规则生效之前重定向,无论规则是服务器级还是站点级,无论是IIS重写还是Helicon Ape,等等。感谢您的洞察力。这无疑是一个有价值的贡献。