Duc*_*tro 4 asp.net url-routing case-sensitive iis-express
如果使用IIS Express,我应该如何启用区分大小写的请求处理?IIS Express中有设置吗?或者URL重写规则可以实现此目的吗?或者也许是全能的HTTP Handler进行案例检查?
目标是在部署到IIS和S3(S3区分大小写)之前,能够在本地捕获与静态文件相关的大小写不一致.
谢谢
Kev*_*ice 13
...但不是文件.
IIS不区分大小写是一个误称,Windows文件系统不区分大小写,而不是IIS.如果URL包含文件路径,则IIS会询问Windows文件是否存在且操作系统是否响应而不考虑字母大小写.Windows中的文件名无法"启用"区分大小写.
但对于非真实文件路径,IIS是100%区分大小写的.URL字符的大小写完整地传递给IIS管道.无论是否存在区分大小写,都取决于Web应用程序.但好的做法是说你不想/page1与众不同/PAGE1.
ASP.NET对查询字符串变量名称不区分大小写.再次,这不是 IIS.应用程序(ASP.NET)不区分大小写.
静态文件路径不区分大小写(由于Windows操作系统,而不是IIS):
http://example.com/sUbdiRectoRy/FILe.aspx
Run Code Online (Sandbox Code Playgroud)
然而,不参与文件路径的URL的部分是区分大小写(后一切file.aspx除了"X"参数的下方,因为的.aspx是一个ASP.NET资源):
http://example.com/sUbdiRectoRy/FILe.aspx/Extra/Tail?x="query parameter"
Run Code Online (Sandbox Code Playgroud)
如果应用程序区分大小写,则通过重写,HttpModules等动态生成的URL也区分大小写.这通常不是最佳做法,因为这两个URL会引用两个单独的网页:
http://example.com/2012/01/23/blog-article
http://example.com/2012/01/23/BLOG-ARTICLE
Run Code Online (Sandbox Code Playgroud)