SEO 之 SpringMVC redirect 301,301和302区别详细讲解

JSON 2019-05-05 23:37:14 16474

为什么一个重定向和  SEO  扯上了,因为当我们一些内容(URL链接)改变了,我们要告诉搜索引擎,告诉它这个链接发生了URL的改变。但是搜索引擎会区别对待  HTTP  重定向状态为 301 & 302

可能我们平时没扯上  SEO  ,所以我们用的都是  302  。下面说说  302  和  301  的区别。

302和301的解释和应用场景

 HTTP Status  解释  应用场景
 301  表示当前URL地址永久性重定向到另外一个地址。  当URL规则发生改变,可以使用这个状态,告诉搜索引擎收录301之后的地址。
 302  表示当前URL地址临时重定向到另外一个地址。  比如没有权限,常用为没有登录,重定向到登录页面等等。

没错,都是重定向,但是这个重定向一个表示永久,一个表示临时。

302和301应该怎么用?

先说说302:

我们平时的企业级项目,或者应用级项目,直接302即可,就是我们平时用的redirect默认就是302的状态,302浏览器不会记录302之后的地址。

举个栗子:当用户访问了一个需要登录的A页面,您会把用户重定向到Login登录页面去,这个时候如果用了301 跳转到Login页面,下次不管用户有没有登录,访问这个A地址,浏览器会直接重定向到Login登陆页面去,都不经过后台控制跳转,这个是浏览器做了优化,认为访问A页面需要永久跳转到登陆页面去。

所以当不知道用什么情况下,那就用302吧,这也是Redirect为什么默认是302的用意。

再说说301:

301真的是只有在  SEO  比较讲究的时候用的比较多,或者你系统改版,确实原来A地址改成了B地址,这个时候就用301,对系统也减少没必要的重复请求,对用户来讲也是一个用户体验的提升。

SpringMVC 302 和 301 代码示范

302 SpringMVC提供了二种封装的方法:

302方案一:

@GetMapping("redirectMethod1")
public String redirectMethod1(){
    //直接重定向到一个绝对地址,这里也支持相对路径
    return "redirect:https://www.sojson.com/";
}

302方案二:

@GetMapping("redirectMethod2")
public ModelAndView redirectMethod2(){
    //这里使用了封装的View
    return new ModelAndView(new RedirectView( "https://www.sojson.com/"));
}

其实还有一种原生的方案,下面301后会说到。

301 SpringMVC应该是没有提供方案,下面直接用原生的

@RequestMapping(value="status",method=RequestMethod.GET)
public void status(HttpServletResponse response){
	//设置 301	
	response.setStatus(301);
	response.setHeader("Location",String.format("%s/http/status.html", Constant.DOMAIN_WWW));
}

当然也可以设置302或者其他的状态。


版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/323.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
Java 获取HTPP 301 / 302 重定向后的Url地址,301302SEO的影响
Maven的MirrorRepository 的详细讲解
TCP UDP协议详细讲解,优缺点分析讲解
document.domain解决跨域问题,详细讲解
Linux 安装 Redis 详细步骤讲解
Plupload 上传详细讲解,Plupload 多实例上传,Plupload多个上传按钮
Bootstrap Affix 插件 高级用法详细讲解
Golang 常见设计模式——装饰模式详细讲解
Freemarker Macro,Freemarker 宏参数传递详细讲解
HttpClient 获取详细的头信息
最新文章
JavaScript对象详细剖析 2
Python print() 函数 88
PHP if/else/elseif 语句 125
HTML5 Canvas弧线教程 103
Java赋值运算符 118
XML内部实体和外部实体 231
Java面向对象编程概念 177
PHP回显语句 142
Linux—文件树 176
C语言while循环和do while循环 155
最热文章
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 683213
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 674780
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 603455
免费天气API,天气JSON API,不限次数获取十五天的天气预报 583029
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 553207
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 509511
Elasticsearch教程(四) elasticsearch head 插件安装和使用 480131
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 265314
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 244343
Elasticsearch教程(一),全程直播(小白级别) 225734
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...