加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

301永久重定向讲解和设置方法

发布时间:2020-03-18 15:19:09 所属栏目:教程 来源:站长网
导读:副问题#e# 在HTTP协议中,行使三个数字代表HTTP协议状态。 HTTP状态代码是在Web处事器返回数据的第一行实现的,好比你会见,百度的处事器会返回的数据第一行是:HTTP/1.1 200 OK 这里就声名百度返回的状态是200,协议是HTTP/1.1,状态描写是OK。 各人都知道
副问题[/!--empirenews.page--]

在HTTP协议中,行使三个数字代表HTTP协议状态。

HTTP状态代码是在Web处事器返回数据的第一行实现的,好比你会见,百度的处事器会返回的数据第一行是:HTTP/1.1 200 OK

这里就声名百度返回的状态是200,协议是HTTP/1.1,状态描写是OK。

各人都知道g.cn这个google的网址,这个网址会转跳到上,当我们会见g.cn的时辰第一行返回的是:HTTP/1.1 301 Moved Permanently

声名状态是301,状态描写是Moved Permanently,直译为“永世转移”,这里g.cn用到的就是永世重定向。

各人会问,怎么看到这个“HTTP/1.1 200 OK”这样的状态,这里必要一个可以或许监控IE赏识器通信的措施,我用的是HttpWatch 4.0 Professional 专业版,下载地点“”,安装后从[查察(V)]-》[赏识器栏(E)]找到HttpWatch,之后会看到这个器材已经表现出来了,在此不多嗣魅这个措施怎么行使了。

简朴先容几个状态代码(更多信息可参考)

在1XX中,是Informational和尝试性行使的协议,险些基础不消,就此忽略。

200 OK:暗示哀求已经接管,客户所必要的信息已经乐成的返回给客户。

206 Partial Content:部门内容,假如客户端哀求的是较大的资源,好比下载,MP3,会被分段传送。此状态暗示这是个中的一部门。

300 Multiple Choices:可选重定向,暗示客户哀求的资源已经被转向到其它的地点了,可是没有声名是否是永世重定向照旧姑且重定向。

301 Moved Permanently:永世重定向,同上,可是这个状态会奉告客户哀求的资源已经永世性的存在在新的重定向的URL上。

302 Moved Temporatily:姑且重定向,在HTTP1.1中状态描写是Found,这个和300一样,可是声名哀求的资源姑且被转移到新的URL上,在往后也许会再次变换可能此URL会正常哀求客户的毗连。

400 Bad Request:坏的哀求,这在IIS里常见,其示意为(Invalid Hostname)失败的主机头,其它其他的失败的坏哀求都是此状态。

403 Forbidden:榨取状态,此状态是明明的榨取用户和拒绝用户的哀求!

404 Not Found:哀求的地点和资源没有找到。

500 Internal Server Error:内部处事器错误。

503 Service Unavailable:处事器不行用,暗示Web处事器已经瓦解可能超载运行,此状态就是明晰的汇报用户,此刻处事器有题目。

什么是准确重定向?

当你会见想转向到这叫准确重定向,就是仅仅域名变了,可是后头的路径仍旧存在,相反,就是不管会见谁人页面,都重定向到一个新的指定的页面。

表明3xx状态

我们以301永世重定向为例。我们发哀求给g.cn,看到HttpWatch的信息

以下是代码片断:
HTTP/1.1 301 Moved Permanently
Cache-Control: private, max-age=2592000
Content-Length: 235
Content-Type: text/html; charset=UTF-8
Date: Mon, 11 Jan 2010 13:58:44 GMT
Expires: Mon, 11 Jan 2010 13:58:44 GMT
Location: ?source=g_cn
Server: gws
X-XSS-Protection: 0  

此状态明明声名301永世重定向,可是从定向到那边呢??看下面有一个Location: ?source=g_cn,Location的意思是位置,一个3xx的哀求必需包括Location字段信息,不然将不知道转向到那边。

在措施中实现3xx状态

ASP:

在ASP的编程中有一个要领可能说是函数可以节制状态行的字符,而且可以添加Location这样的字段。

以下是代码片断:
<%
Response.Status = 301 ‘暗示状态切换成301
Response.AddHeader “Location”,”” ‘在头中添加Location字段,其内容是百度的网址。
%>  

以下是代码片断(准确重定向):
<%
Response.Status = 301 ‘暗示状态切换成301
Response.AddHeader “Location”,””&Request.ServerVariables(“HTTP_X_REWRITE_URL”) ‘在头中添加Location字段,其内容是百度的网址。
%>  

这是永世重定向的实现要领,有人说Response.Redirect也可以重定向,可是你最好用HttpWatch看看到底是不是301!

Request.ServerVariables(“HTTP_X_REWRITE_URL”)是ASP中得到哀求路径的要领。

PHP:和ASP一样,也是两步

以下是代码片断:
<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: ”);
?>  

以下是代码片断(准确重定向):
<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: ”.$_SERVER"REQUEST_URI"]);
?>  

在PHP中header()这个要领直接可以对HTTP头部信息举办操纵,假如不写“header(“HTTP/1.1 301 Moved Permanently”); ”这个的话也可以转向,不外和ASP的Response.Redirect一样,状态不会是301而是300。

ASP.net:也是两步

以下是代码片断:
<%@ Page Language=”C#” %>
<%
    Response.Status = “HTTP/1.1 301 Moved Permanently”;
    Response.Headers.Add(“Location”, );
%>  

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读