我有一个url路由,我在global.asax
文件声明:
routes.MapPageRoute("RouteAdmin", "Admin/{Url}", "~/pages/MyPage.aspx", false);
但如果用户尝试访问mysite.com/pages/MyPage.aspx
,他仍然可以看到该页面
问题:
答案 0 :(得分:0)
找到它。
如果我直接访问aspx文件,那么我可以查看这个道具:
Page.RouteData.RouteHandler
为空
,其中
如果我使用路由网址它不是空的:
{System.Web.Routing.PageRouteHandler}
(更好的解决方案)
将这两行添加到全局asax
routes.MapPageRoute("Route", "{*.}", "~/pages/default.aspx", false );
routes.RouteExistingFiles = true;
答案 1 :(得分:0)
在ASP.NET MVC
视图中,无法使用未找到的处理程序直接访问它们:
<system.web>
<httpHandlers>
<remove verb="*" path="*.aspx" />
<add path="*.aspx" verb="*" type="System.Web.HttpNotFoundHandler" />
</httpHandlers>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<add name="BlockViewHandler" path="*.aspx" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>