我记得在 .NET 2.0 刚发布时,我曾尝试在自己编写的 CMS 中使用无扩展名的 URL 格式。问题在于部署到 IIS6 服务器。这几乎是不可能的。我不得不以编程方式为路径创建文件夹(大量文件夹)并在其中插入虚拟“Default.aspx”以将请求路由到 ASP.NET。当然,我讨厌那个“解决方案”,不得不放弃使用无扩展名的 URL。
现在我开始使用 ASP.NET MVC,我再次想要(需要)使用无扩展名的 URL。有人能告诉我,当我尝试将我的应用程序部署到 IIS6 时是否会遇到同样的麻烦吗?要使这种类型的 URL 结构在 IIS6 中工作,是否需要什么特殊的东西?
答案1
使用 IIS 6 可以实现无扩展名 URL,但需要在站点的应用程序配置中设置“通配符”ISAPI 映射。这会导致全部由 ASP.NET ISAPI 过滤器处理的请求包括图像、javascript 等静态文件。
这是一个优秀的博客文章来自 Phil Haack 的关于在 IIS 6 上设置 ASP.NET MVC 的不同选项。通配符说明大约在中间。
答案2
请注意,从 .NET 4.0 开始不再需要通配符 ISAPI 映射: 关联