千家信息网

ASP.NET MVC3中如何利用Routing特性提高站点权重

发表于:2025-11-20 作者:千家信息网编辑
千家信息网最后更新 2025年11月20日,这篇文章给大家分享的是有关ASP.NET MVC3中如何利用Routing特性提高站点权重的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。正文对于SEO,一个地址对应一个唯一
千家信息网最后更新 2025年11月20日ASP.NET MVC3中如何利用Routing特性提高站点权重

这篇文章给大家分享的是有关ASP.NET MVC3中如何利用Routing特性提高站点权重的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

正文

对于SEO,一个地址对应一个唯一独立的内容是保证最好权重的一个重要步骤,所以我们需要确保每一个URL地址对应的内容都是不重复的(对于MVC来说也就是不同的Action),但ASP.NET MVC3程序默认是有问题的,比如HomtController.Index这个Action方法就可以被对应到多个地址上,例如:

1.http://abc.com (默认)
2.http://abc.com/ (斜杠结尾)
3.http://abc.com/Home (带有Controller)
4.http://abc.com/Home/Action (带有Controller和Action)
5.http://abc.com/home/Action (不同的情况)

等等

要解决这个问题,一个办法是使用IIE URL Rewrite Extension,但是它配置起来挺复杂的,所以在这里我们来利用MVC自己的特性来解决这一问题(通过注册全局的filter),添加如下class:

public class RemoveDuplicateContentAttribute : ActionFilterAttribute{  public override void OnActionExecuting(ActionExecutingContext filterContext)  {    var routes = RouteTable.Routes;    var requestContext = filterContext.RequestContext;    var routeData = requestContext.RouteData;    var dataTokens = routeData.DataTokens;    if (dataTokens["area"] == null)      dataTokens.Add("area", "");    var vpd = routes.GetVirtualPathForArea(requestContext, routeData.Values);    if (vpd != null)    {      var virtualPath = vpd.VirtualPath.ToLower();      var request = requestContext.HttpContext.Request;      if (!string.Equals(virtualPath, request.Path))      {        filterContext.Result = new RedirectResult(virtualPath + request.Url.Query, true);      }    }    base.OnActionExecuting(filterContext);  }}

然后在Global里注册filter就可以了:

public static void RegisterGlobalFilters(GlobalFilterCollection filters){  filters.Add(new HandleErrorAttribute());  filters.Add(new RemoveDuplicateContentAttribute());}

我们来解释一下:

首先,RemoveDuplicateContent filter获取当我的RequestContext和RouteData,然后判断如果当前没有使用Area的话就为DataToken添加一个空值,这一点非常重要,因为如果不加的话,后面再使用Area特性的话就会出错。

接着,该filter通过RouteData获取虚拟path,然后toLower一下转换成小写。

然后,和当前request的path进行比较,如果不一致就重定向到小写的虚拟path上,这样,搜索引起就能识别当写多个请求其实都是对应到你的虚拟path那个真实的地址上,也就是说唯一对应那个action的地址上,以此来做到一个地址对应一个内容。

感谢各位的阅读!关于"ASP.NET MVC3中如何利用Routing特性提高站点权重"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

地址 内容 特性 权重 问题 站点 不同 重要 也就是 多个 小写 更多 篇文章 不错 复杂 实用 一致 也就是说 全局 办法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 BT盒子怎么链接服务器 上海火蝶互联网科技有限公司 计算机数据库基础sql 网络安全讲演稿300字左右 网络巡查执法守护网络安全 方舟服务器界面翻译 dmp文件包括数据库结构的 javaweb怎么建立服务器 刺激战场不要服务器可以玩吗 金融管理软件开发学什么科目 软件开发对资格证书具体要求 如何看待网络安全威胁和风险 软件开发合同 简版 web防火墙服务器价格 nginx搭建文件服务器 大量数据导入数据库时不能用函数 邮箱收件服务器主机名是啥 网络安全知识讲座新闻稿 数据库镜像技术是什么 delphi 建数据库 一键端数据库超详细 中心学校网络安全宣传周总结 阳光扶监管五大数据库 世界卫生组织网络安全攻击 网络安全卡通情景剧大全 软件开发现在热门吗 怎样判断服务器内存类型 京东服务器多大 如何重启电脑的mysql数据库 计算机网络技术可以参军吗
0