URl 中的大写字母重要吗?

Does capital letters in URl matter?

最近看到一个场景

当我试图在主机服务器上访问以下 URL 时,它给了我一个 500 内部服务器错误。

<DomainAddress>/tut/Courses/CoursesView

但是当我如下更改 URL 时它起作用了(将 't' 更改为 'T')。

<DomainAddress>/Tut/Courses/CoursesView

我知道 tut 是服务器上的一个文件夹。

  1. 尝试访问应用程序时大写字母重要吗?
  2. 我是否遗漏了 IIS 服务器中的某些设置?

项目详情

RFC 3986 的第 6.2.2.1 节说“方案和主机不区分大小写,因此应规范化为小写。例如,URI HTTP://www.EXAMPLE.com/ 等同于 http://www.example.com/.

一些网络服务器(通常是 Unix 服务器)认为所有 URL 都区分大小写。也就是说,他们会将以下每个 URL 视为引用不同的文件和网页:

http://www.example.com/mypage.html

http://www.example.com/MyPage.html

http://www.example.com/MYPAGE.html

http://www.example.com/MYPAGE.HTML

如果你访问了“http://www.example.com/mypage.html”但是文件实际上被命名为“MyPage.html”,这些类型的服务器会显示“找不到文件”错误。

但是其他 Web 服务器(主要是 Windows 服务器)会将所有这些 URL 视为对同一文件的请求,因为它们使用的文件系统不关心大小写。在这些类型的服务器上使用错误大写的 link 不会导致错误。

服务器也可能在内部对传递的 URI 进行规范化,并为不同大小写的 URI(/about/ 和 /ABOUT/)提供相同的资源,使 URI 对用户来说不区分大小写。