【问题标题】:How to set MapRoute from base URL?如何从基本 URL 设置 MapRoute?
【发布时间】:2014-06-20 16:39:50
【问题描述】:

我已成功将 URL www.mysite.com/home/directory 路由到主页:

 Routes.MapRoute(
    "forbidden1",
    "{controller}/directory",
    new {                               
       controller = "Home",
       action = "Index",
    });

...但是我如何对 URL www.mysite.com/directory 做同样的事情,因为 mysite.com is home?

【问题讨论】:

    标签: c# asp.net global-asax


    【解决方案1】:

    您是否要阻止文件夹访问?如果是这样,这不是正确的方法。

    Code on loan from this answer 这将阻止请求,但允许您的代码访问文件夹。

    <configuration>
       <system.webServer>
           <security>
              <requestFiltering>
                   <hiddenSegments>
                       <add segment="My_Directory" />
                   </hiddenSegments>
               </requestFiltering>
           </security>
       </system.webServer>
    </configuration>
    

    编辑:

    如果你想捕获所有错误的 MVC 路由,请使用类似这样的东西......

    routes.MapRoute(
        "TrapBadRequests",
        "{*url}",
        new { controller = "Home", action = "Default" }
    );
    

    【讨论】:

    • 这是一个虚拟目录 - 好奇的员工可能会知道 - 已经不允许浏览,但我想简单地将任何查看 目录 的尝试重新路由到主页.
    • 您也可以使用 Web 配置条目重新路由所有 404 问题。无论如何,我认为您只是路由所有未正确映射的内容。编辑反映。
    • 如果你真的可以这样称呼它,你想把它作为最后一条“路线”。订单很重要,所以如果你把它放在第一位,任何请求,无论是否有效,都会遵循这个包罗万象。
    • 应该尽量减少那些讨厌的好奇员工,比如我们自己,在您的网站上获得的乐趣。周末干杯。
    • 仍然给我一个 403 错误。 :/ 哦,好吧,现在这是一件小事 - 我知道人们无论如何都无法在没有远程权限的情况下访问目录。
    猜你喜欢
    • 2017-10-10
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    相关资源
    最近更新 更多