当包含句点的URL中存在哈希值(#)时,IIS将重定向到404错误页面

时间:2013-05-01 03:00:35

标签: c# asp.net-mvc iis iis-7.5 url-routing

我遇到过一些我似乎无法弄清楚的行为。有些用户通知我tumblr网址不适用于我的网站。

Tumblr正在添加一个哈希(#)以及一些包含句点的随机字符。

Tumblr为我的网站生成的网址示例如下所示: http://www.killsometime.com/videos/10747/First-Time-News-Anchor-Fail#i0OJ0Uc752hQkZHO.18

网站上的实际网址是: http://www.killsometime.com/videos/10747/First-Time-News-Anchor-Fail

您可以看到tumblr正在添加一个混合了句点的哈希值。您可以使用该URL来测试我所说的行为。

IIS正在扼杀这些值。它正确加载页面,然后立即重定向到404错误。

在我的web.config中,我有以下设置允许句点:

<httpRuntime targetFramework="4.5" relaxedUrlToFileSystemMapping="true" />

继承我的路线。

routes.MapRoute(
            name: "Video",
            url: "videos/{MediaID}/{MediaTitle}",
            defaults: new { controller = "Videos", action = "Video", MediaID = "", MediaTitle = "" },
            constraints: new { MediaID = @"\d+" }
        );

我用这个来绞尽脑汁。任何帮助将不胜感激!

谢谢!

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。它与IIS没有关系。我正在运行一个非常旧版本的jquery.history,它不再受支持。