背景:
公司对网站SEO开始有要求,要我们给所有的网站URL后加上”.html“,据说可以让百度认为网站文件是静态文件,然后提高排名。
那么问题来了,.net framwork认为后缀为.html或.txt的都属于静态文件,会直接访问网站的同名文件,这样显然是不行的,我希望可以走路由,经过controller,而不是直接呈现,更何况.net的view都是.cshtml的后缀名。
解决方法:
在RouteConfig.cs文件中进行如下配置
routes.RouteExistingFiles = true;
routes.IgnoreRoute("Content/{*relpath}");//指定目录不走路由
routes.IgnoreRoute("Scripts/{*relpath}");//指定目录不走路由
//启用路由特性映射
routes.MapMvcAttributeRoutes();
这样还不够,还需要在Web.config中进行修改
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
完成!