带有点在.net中的语义网址

Jok*_*kin 25 .net iis routing

我正在尝试为搜索页面创建语义URL,但如果有人使用点完成的搜索,则.net引擎返回404.

请求甚至没有到达路由引擎,所以我认为它与安全性或类似的东西有关.

例如,stackoverflow路由在这些情况下也不起作用: /sf/ask/tagged/etc/.

bka*_*aid 24

如果您使用的是.NET 4.0和IIS 7+,则可以在web.config的system.web部分设置此标志,并允许:

<httpRuntime relaxedUrlToFileSystemMapping="true" />
Run Code Online (Sandbox Code Playgroud)

我测试了它,它的工作原理.哈克有一个解释.

  • 在IIS Express(版本8)和.NET 4.5下,它失败了 (8认同)
  • 升级到较新版本的Windows. (3认同)
  • 它不适用于IIS 7.5(Win 7),.NET 4.5 :( (3认同)
  • @Roger它需要iis7.我补充说. (2认同)
  • 你怎么能在IIS <7? (2认同)
  • 我们有一个类似的问题(url 包含一个带点的 Id):/example/id/123.45 通过在对我们有用的 url 添加尾部斜杠:/example/id/12345/ (2认同)

dpu*_*ton 8

'.'之后的一切 是文件扩展名.如果该扩展未映射到ASP.NET,则不会将其传递给ASP.NET处理程序.IIS会查找静态文件.因此404.如果它没有添加任何东西(并且很难看出它会如何),我建议剥离它.