为了像/content/something
您一样路由到无扩展目标,需要在 IIS 应用程序池中使用集成模式。如果您无法更改此设置,那么除了设置自定义 404 处理程序并从那里手动处理 URL 之外,没有简单的方法可以做您想做的事情。这可能是您的 404 错误的原因。
另外,RouteExistingFiles
应该是假的。您正在尝试路由不作为文件存在的东西。如果您设置RouteExistingFiles = true
,那么当路由匹配时,将不会使用对现有文件的默认处理。您要做的就是处理不存在但代表数据库内容的路径,对吗?所以留下这个错误。
最后,您的MapPageRoute
陈述似乎不正确。例如,在 Microsoft 的演练中,它可能看起来像:http: //msdn.microsoft.com/en-us/library/dd329551.aspx
routes.MapPageRoute("SalesRoute",
"SalesReport/{locale}/{year}",
"~/sales.aspx");
这将导致调用匹配sales.aspx
的路由作为响应。在您的示例中,目标~/about/company
看起来像一条路线,而不是实际目标 - 您处理 CMS 请求的实际目标应该具有aspx
扩展名。