遇到这样一个问题:使用asp.net4.0+asp.net mvc2开发时候,将首页生成为静态的default.htm文件,但部署到IIS7上,使用asp.net4.0 高档网站建设 Classic线程池,会出现404,IIS的默认文档也包括default.htm这个文件。
百思不得其解之后估计是System.Web.Routing的问题,将首页默认为 /Home/Index 了。如果在 /Home/Index 添加跳转代码:
HttpContext.Current.Response.Redirect("default.htm");
这表镇江网站建设公司明上解决问题,但访问www.abc.com的时候会跳转到www.abc.com/default.htm , 这对SEO影响是非常大的,甚至没人愿意跟你换链接。
所以只能通过一个方法,让当前请求的路径 与 默认的路由表无法匹配。这样就会读到default.htm这个默认文档了!
全局配置文件的默认路由代码如下:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index",id ="" }
);
正是由于上面的路由,导致IIS将/Home/Index做为了首页,如果我们将action="Index"修改为action="IndexPage"。
那么结果还是一样的,为什么呢?因为还是能够与这条路由匹配。解决方法只有让请求路径与路由不匹配!
聪明的您一定想到了,我们应该通过对路由加上约束使其不匹配
修改后的默认路由为:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new 澄迈网站建设公司{ controller = "Home", action = "1", id ="" },
new { controller="[A-Za-z]+",action = "[A-Za-z]*" }
);
我们让默认的action的值1与约束的正则不匹配,也就让请求路径与这条路由不匹配。问题完美解决!
南京牧狼文化传媒有限公司简介:
牧狼传媒,牧者之心,狼者之性,以牧之谦卑宽容之心待人,以狼之团结无畏之性做事!
公司注册资金100万,主营众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放以及电商营销推广全案等相关业务,致力于为客户提供更有价值的服务,创造让用户满意的效果!
为百度官方及其大客户、苏宁易购、金山WPS秀堂、美的、创维家电、新东方在线、伊莱克斯、宝丽莱等国内国外知名品牌服务过,服务经验丰富!同时,公司也是南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位,可以为您提供更好的服务!
主营项目:众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放、竞价托管、网站优化、电商代运营等
合作客户:百度、苏宁易购、饿了么、美的、创维家电、新东方在线、宝丽莱、金山WPS秀堂、伊莱克斯
资质荣誉:百度商业服务市场2017年度最佳图片服务商、南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位、八戒通TOP服务商、"易拍即合杯"H5创意大赛"三等奖"。