深圳JAVA培训-高端面授深圳JAVA培训机构
云和教育:云和数据集团高端IT职业教育品牌
  • 华为
    授权培训中心
  • 腾讯云
    一级认证培训中心
  • 百度营销大学
    豫陕深授权运营中心
  • Oracle甲骨文
    OAEP中心
  • Microsoft Azure
    微软云合作伙伴
  • Unity公司
    战略合作伙伴
  • 普华基础软件
    战略合作伙伴
  • 新开普(股票代码300248)
    旗下丹诚开普投资
  • 中国互联网百强企业锐之旗
    旗下锐旗资本投资

【php培训】301跳转的全面和深度解析

  • 发布时间:
    2016-05-13
  • 版权所有:
    云和教育
  • 分享:

今天小编请来了云和学院郑州php培训班的老师给大家详细讲解301

什么是301:

301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。

什么情况下需要我们做301:

1:网站更换域名时,通过301永久重定向将旧域名重定向至新域名,挽回流量损失和SEO。

2:当出于需要删除网站中的某些目录时,比如我要删除我博客下的博客导航,这时就可以用301永久重定向到网站首页。

3:如果你有多个闲置域名时需要指向同一网站时,通过301永久重定向可以实现。

4:你打算实现网址规范化。

如和做301?以www.haoracle.com301到haoracle。com为例

1:IIS 服务器实现301 重定向

打开IIS,右键-属性-网站-IP地址哪里点编辑增加一个站点,增加一个站点,绑定的一下主机头,也可以绑定多个闲置域名,打开IIS,首先新建立一个站点,随便对应一个目录E:\wwwroot\301web。该目录下只需要2个文件,一个 default.html,一个404.htm。在欲重定向的网页或目录上按右键;选中“重定向到URL”;在对话框中输入目标页面的地址;切记,记得选 中“资源的永久重定向”;当然,最后要点击“应用”,完成。

2:Apache 服务器实现301 重定向

在Apache 中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301 重定向只是其中之一。找到redirect permanent / http://haoracle.com:

redirect permanent /old.html http://haoracle.com:修改这句即可。

3:如果网址使用LAMO(Linux+Apache+MySQL+PHP)主机可以在.htaccess文件中增加301重定向指令

采用“mod_rewrite”技术,形如:

RewriteEngine on

RewriteRule ^(.*)$ http://haoracle.com/$1 [R=301,L]

注意:如果网站用的是windows主机,可以在控制面板做301转向设定。纯静态HTML页面无法做301转向。在HTML里能做JS或者Meta Refresh转向,但不能做301转向(用HTML跳转:<META HTTP-EQUIV=REFRESH CONTENT=”5;URL=http://www.haoracle.com”>, 表示5秒后自动跳转到首页,你也可以把时间设置的更短,但也很容易被搜寻引擎容易误判为spam而遭到惩罚。用javascript跳 转:<script language=”javascript”>location.href=’http://www.haoracle.com'</script>)。HTML一被读取,就已经返回200 ok代码了。如果页面是ASP或者PHP,还可以做301转向。

4:适用于使用Unix网络服务器的用户

通过此指令通知搜索引擎的spider你的站点文件不在此地址下。这是较为常用的办法。

形如:Redirect 301 / http://haoracle.com/

5:在服务器软件的系统管理员配置区完成301重定向

适用于使用Window网络服务器的用户

6:绑定/本地DNS

如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。

DNS服务器的设置

若要将www.haoraclecom指向haoracle.com,则只需在DNS服务中应增加一个别名记录,可写成:www IN CNAME haoracle.com。

如需配置大量的虚拟域名,则可写成:* IN CNAME haoracle.com.这样就可将所有未设置的以haorcle.com结尾的记录全部重定向到haoracle.com上。

7:用ASP/PHP实现301重定向:

ASP:

Response.Status=”301 Moved Permanently”

Response.AddHeader “Location”,”http://haoracle.com/”

Response.End

PHP:

header(“HTTP/1.1 301 Moved Permanently”);

header(“Location:http://haoracle.com/”);

exit();

我应该用哪种301?哪种301最好?301是否传递权重?

这需要根据你的实际情况,这里有必要先说一下我们是如何打开一个网页的,我们从输入网址到看到网页内容这中间到底发生了什么。

1.假设DNS里有一条记录,是把域名www.haoracle. com 指向web服务器192.168.*.*的。(我们在搭建网站的时候所说的解析域名就是告诉DNS我要把我的域名指向http://xxx.xxx.xxx.xxx主机。)
2:当我们在PC上输入访问www.haoracle.com 时就会先到DNS上查找有没有记录,有的话dns会告诉PC 是192.168.*.*。如果没有那就悲剧了,我们平时遇到的可以登录qq但是不能访问网页就有可能是这个原因。

3:假设上面再dns里能找到记录(找不到就没法写了),这时候pc1就会拿着192.168.*.*找到r1问,我要去192.168.*.*该怎么走?R1其实有可能具体也不知道怎么走,但是R1知道R1.1 知道怎么走,然后就把数据交给R1.1 。。。。。。一直到R2,R2说我知道,然后R2就把请求交给192.168.*.*

4:Web-Server上还要声明自己就是www.haoracle.com的服务器,要不然他也不会买账的。假设Web-Server就是www.haoracle.com 的服务器(不是又没法写了),Web-Server看到数据请求是来请求访问www.haoracle.com的,然后就把www.haoracle.com 的首页返回给PC

5:PC拿到数据后就会在浏览器上解析出我们常见的网页。

简单来说就是这样子:1.输入网址——>2.此时电脑开始查询最近的dns服务器找到对应IP——-寻找此IP的问路过程——–>3.找到声明自己就是对应IP的服务器——–>4.服务器响应请求给出对应的路径地址和内容——–>5.浏览器解析看到内容

也就是说想要最快的301效果,直接从第2步用dns301跳转(域名解析)最快;其次是用第4步,服务器设置301跳转;第4步中如果开启了.htacess文件,则服务器还要再访问一次.htacess,这种跳转是最慢的。因为其访问层级最深。严格来说第2步DNS设置的跳转是域名解析,不能称为301,这样的跳转根本访问不到旧的IP,也就不存在权重转移。而html静态页中不论是Meta Refresh转向还是js跳转实际上都已经访问到“页面“”,只不过页面内容指示页面跳转,这里如果设置不当甚至可能被搜索引擎判定为作弊。想要实现权重转移,最好的办法是服务器响应请求之前,返回静态页之前用服务器设置或者.htacess文件做301跳转。

做完301后,新域名添加新内容,老域名是否还会收录?

如果搜索引擎get到了301,也就意味着get到了旧域名地址,即使新域名添加了新页面,对应的还是会有一个旧域名的页面被抓去,随着时间的积累,搜索引擎意识到旧域名永久转移,会逐渐减少甚至停止旧域名的抓取。最后直至完全把旧快照完全清理出数据库,这需要一个漫长的时间。更多问题欢迎来电咨询郑州php培训班的专家老师。