【问题标题】:Reject (Hard 404) ASP.NET MVC-style URLs拒绝(Hard 404)ASP.NET MVC 样式的 URL
【发布时间】:2011-02-01 05:27:37
【问题描述】:

公开“友好”URL 的 ASP.NET MVC Web 应用程序:

http://somesite.com/friendlyurl

...在后台被重写(未重定向)为 ASP.NET MVC 样式的 URL:

http://somesite.com/Controller/Action

用户实际上从未看到任何 ASP.NET MVC 样式的 URL。如果他要求一个,我们硬 404 它。 ASP.NET MVC(在这个应用程序中)是一个实现细节,而不是一个基本接口。

我的问题:如何检查任意传入 URL 并确定该 URL 是否与定义的 ASP.NET MVC 路径匹配

额外的功劳:如何在 ASP.NET 样式的 IHttpModule 中实现这一点,您会在 ASP.NET MVC 运行时上游被调用?

谢谢!

【问题讨论】:

    标签: asp.net-mvc url-rewriting http-status-code-404 friendly-url


    【解决方案1】:

    那你为什么一开始就有“硬”网址呢?只需更改您的路由,重写您可以完全控制的东西似乎有点奇怪。

    如果你不能,你可能想要一些类似的东西

    Response.StatusCode = (int)HttpStatusCode.NotFound;
    return View("NotFound");
    

    【讨论】:

    • 好问题。主要是出于遗留原因。还有一些边缘情况,通过 IHttpModule 重写 URL 比使用路由更容易,或者至少更易于理解/可维护。
    • 好答案;-)。 IMO 如果路由都可以在一个地方完成,那是首选的方式,但这只是我。
    • 编辑后给出一个真实的答案,而不是“你没有问正确的问题”答案
    猜你喜欢
    • 1970-01-01
    • 2013-01-19
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    相关资源
    最近更新 更多