ASP.net 4.0下使用default.htm默认文档
2019-03-22 04:20:16来源: 奥博科技 阅读 ()
遇到这样一个问题:使用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与约束的正则不匹配,也就让请求路径与这条路由不匹配。问题完美解决!
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:打造智能广告——省时省力省成本
- 百度智能小程序“产品实验室”已开通使用Discuz论坛 2019-07-15
- 天下苦流量久矣! 2019-06-13
- 互联网考古地图(上) 2019-04-10
- 自媒体逆势增长指南 2019-04-10
- 使用Google Cloud SDK来配置Google App Engine 2019-04-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash