301永久重定向实现方式及302重定向

302重定向302 Moved Temporarily 字面上的区别就是301永久重定向,而302是临时重定向301适合永久重定向   301比较常用的场景是使用域名跳转。 比如,我们访问 http://www.baidu.com 会跳转到 https://www.baidu.com,发送请求之后,就会返回301状态码,然后返回一个location,提示新的地址,浏览器就会拿着这个新的地址去访问。   注意: 301请求是可以缓存的, 即通过看status code,可以发现后面写着from cache。   或者你把你的网页的名称从php修改为了htm. 阅读详情

在我们的网站建设中,时常会遇到需要网页重定向的情况:象网站调整,如改变网页目录结构,网页被移到一个新地址,再或者,网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户还会得到一个404页面错误信息,访问流量白白丧失;再如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点,等等。

常用的重定向方式有: 301 redirect, 302 redirect 与 meta fresh

301 redirect: 301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。

302 redirect: 302代表暂时性转移(Temporarily Moved ),在前些年,不少Black Hat SEO曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象Google前些年对Business.com以及近来对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。

meta fresh: 这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之內),会被判断为spam。

301 Redirect实现网页重定向

IIS服务器实现301重定向


* 打开internet信息服务管理器,在欲重定向的网页或目录上按右键
* 选择“重定向到URL”
* 在“重定向到”输入框中输入要跳转到的目标网页的URL地址
* 选中“资源的永久重定向”(切记)
* 最后点击“应用”


Apache服务器实现301重定向

相比较来说,Apache实现起来要比IIS简单多了。在Apache中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301重定向只是其中之一。

Redirect permanent / http://www.bloghuman.com/ (将目录下内容重定向到http://www.bloghuman.com/)
redirect permanent /index.php http://www.bloghuman.com/index.php?go=category_6(将网页index.php重定向到http://www.bloghuman.com/index.php?go=category_6)


通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。有兴趣的朋友可参考本站 Apache手册

PHP下的301重定向

<?
Header( "HTTP/1.1 301 Moved Permanently" ) ;
Header( "Location: http://www.bloghuman.com" );
?


ASP下的301重定向

<%@ Language=VBScript %>
<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.bloghuman.com"
%>


ASP .NET下的301重定向

<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader ("Location","http://www.bloghuman.com");
}
</script>



ColdFusion下的301重定向

<.cfheader statuscode="301" statustext="Moved permanently">
<.cfheader name="Location" value="http://www.new-url.com">


旧域名重定向到新域名
创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保旧域名所有的目录或者网页正确的跳转到新域名内。

记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件


Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]


请将上面的www.domain.com修改成你想要跳转到的域名。
此外,我建议大家归总旧网站的外部链接,并联系相应的站点修改导入链链的URL,以指向新站点。

注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用

域名301重定向到www的二级域名

在以前的文章中我反复提及过:www.domain.com是domain.com域下的一个二级域名,并对 二级域名和一级目录之间如何选择以及 网站结构优化做了一个详细的分析,有兴趣的可以读一下两篇文章, 网站结构优化是SEO中最重要

OK,继续域301跳转到www二级域的实现方式:

创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保所有来自对domain.com的请求都转向到对www.domain.com进行请求。记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件


Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]


请将上面的domain.com和www.domain.com修改成你想要跳转到的域名。

注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服务器的Linux主机上才能起作用

301重定向检测工具

配置完成后,一定认真检查一下是否正确。Internet有很多类似的Server Header检查工具,如 Check Server Headers Tool - HTTP Status Codes Checker


网站302重定向使用不当导致被GOOGLE惩罚

  Business.com是网上最大的商业搜索引擎和分类目录,以专业提供商业信息而享负盛名,包括近19万网页。若以“business”为关键词在Google中进行搜索,该网站名列第一。不过在9月5日,Business.com遇到一件蹊跷之事:它的首页由PR8变成了PR0, 而且Google搜索结果中找不到首页。好在被“蒸发”的只是首页,不过庆幸的是第二天首页又回到了Google的搜索结果,但PR仍旧为0。

  Business.com的问题出在它的重定向命令上。该网站让business.com跳转到www.business.com,这种重定向本该是永久性的。我们知道,301属于永久性重定向,而302则属于临时性重定向,只有当一个网站或网页在24到48小时之内临时移到其它位置的情况下才能使用该命令。但Business.com却错误地使用了“HTTP/1.1302 Object Moved”状态码。

  其实网站重定向极为普遍,譬如不满意原来的域名而申请了一个新域名;买下容易被人错拼的域名,防止客户因为拼错URL而找不到网站,等等。可是,很多人却会由于使用了错误的重定向状态码而遭“灭站之灾”,就象Business.com。尽管他们的重定向理由充分合理,然而若使用不当,则可能被Google误认为是利用多个域名指向同一网站,那么你的网站就会被封掉,罪名是“利用重复的内容来干扰Google搜索结果的网站排名”。Business.com就是最好的前车之鉴。只不过大多数使用错误重定向参数的网站没Business.com这么幸运,一个小小的重定向就可能使网站前功尽弃,只能从头来过:重新申请新域名,重新发布新网站,等等。记住:Google绝不会同情任何人即使无心犯下的错误。


网站服务器响应网页浏览请求的运作流程

  让我们先来了解一下用户/搜索引擎和网站一开始的交互流程。当用户或搜索引擎向一个网站服务器发出网页浏览请求时,该服务器将:
1.通过域名服务器(DNS)将域名转换为网站的IP地址,然后返回给客户
2.打开一个该IP套接口连接
3.记下通过该套接口的一个HTTP数据流
4.从WEB服务器接收一个响应请求的HTTP数据流。该数据流包含状态码,状态码的值由HTTP协议所决定。这里所说的“HTTP数据流”信息也叫“头信息(Header)”。头信息中包括了日期,服务器类型,通常还会有一条“200 OK”信息。如果一切良好,那么网络服务器就会将“200 OK”信息以及请求页面发送出去。如果网站在这时候已经建立了重定向,那么服务器就会在头信息中包含一个“302 Moved Temporarily”或“301 Moved Permanent”之类的响应信息。搜索引擎会根据服务器头信息中的内容作出决定。


网站重定向的注意事项

  1.若准备将服务器上的文件移到其它地方时,须就以下信息正确地通知搜索引擎的爬行程序:
- 目标地址:这些文件被移向何方
- 移动属性:暂时移走还是永久性移走
  2.对拥有多个域名的网站,专家建议应把那些不想在搜索引擎上推广的域名用301跳转命令来永久性重定向。


确保网站实施了正确的301重定向

对于正确实施301重定向,有这样几个方法可供大家参考:
1.在.htaccess文件中增加301重定向指令
2.适用于使用Unix网络服务器的用户。通过此指令通知搜索引擎的spider你的站点文件不在此地址下。这是较为常用的办法。形如:Redirect 301 / http://www.yourdomain.com/
3.在服务器软件的系统管理员配置区完成301重定向
适用于使用Window网络服务器的用户
4.采用“mod_rewrite”技术
通过该技术进行的改变将在.htaccess文件中体现出来,形如:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain.com
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=permanent,L]

5.绑定/本地DNS(域名别名跳转)
如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。
若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。
DNS服务器的设置
若要将aaa.domain.com指向www.domain.com,则只需在DNS服务中应增加一个别名记录,可写成:aaa IN CNAME www.domain.com。
如需配置大量的虚拟域名,则可写成:* IN CNAME www.domain.com.
这样就可将所有未设置的以domain.com结尾的记录全部重定向到www.domain.com上。
6.用ASP/PHP实现301重定向
代码在上面已经介绍过了

资深SEO专家Dan Thies的看法和建议

  对于Business.com所遭遇的问题Dan Thies深有体会,因为他也有过类似的遭遇。他的网站上有一个会员跟踪脚本,其中一个会员的站点通过302命令映射到这个跟踪脚本,而这个跟踪脚本又是通过302映射到他的主页。当在Google中用“keyword research”进行搜索,他的主页排名在前十位,然而地址显示的却是那个会员的网址。结果使他哭笑不得:访问者通过Google搜索结果进入他的网站,而他却不得不为这些访问量给那个会员支付报酬! 后来他用robots.txt文件禁止Spiders跟踪访问他的会员跟踪脚本才算解决了问题。
  对于Business.com,Dan Thies认为:“目前Google在302重定向"的处理上还存在一定的问题,但并不表示Google不允许302重定向。Business.com并未遭封或遭到惩罚,它们只是返回了错误的响应。”
  Dan Thies建议:如果使用了跟踪URL/脚本,又必须让访问者重定向到某一着陆页,那么一定要在robots.txt文件中禁止Spiders去访问第二个重定向。如果没有对跟踪URL/脚本进行重定向,而只是把另外一个URL上的内容给复制过来,那么应在robots.txt文件中禁止Spiders去访问跟踪URL,以防因内容重复而遭搜索引擎惩罚。

301重定向经验谈

  一个多域名站主的经验之谈:
  “我只有一个网站,主域名是www.domain.com,此外还有诸如domain1.com、domain2.com、domain3.com等共计十几个域名。所有这些次级域名都映射到www.domain.com,而且所有域名对应的是同一个IP地址。由于事实上我只有一个站点,一个站点又只能对应一个.htaccess文件,显然不可能直接修改.htaccess文件来实现重定向。我采用了如下步骤:
 A.把domain1.com从domain.com上独立出来,让它成为服务器上的一个普通独立网站。
 B.为domain1.com创建一个.htaccess文本文件,并在文件中设置重定向代码为:
 Redirect permanent / http://www.domain.com/
 再将修改后的.htaccess文件上传给domain1.com所在服务器。
 这一步也可以在域名控制面板中完成。
 C.进入域名控制面板,将所有原来绑定到domain.com上的域名从domain.com上释放,然后重新绑定到doamin1.com。这样一来,这些被绑定的域名使用的都是domain1.com的.htaccess文件,因而也就意味着它们都被永久性重定向到domain.com上了。好了,大功告成! 就这么容易!  
HTTP中的301302实现重定向 ‌HTTP状态码301302用于实现重定向‌,其中301代表永久重定向,而302代表临时重定向。这两种重定向方式在网页开发、搜索引擎优化(SEO)以及用户体验方面扮演着重要的角色。 阅读详情

相关推荐

VisionPro 9.0 QuickBuild里用C#脚本调用Halcon 23.11模型,保姆级图文配置流程

本文详细介绍了如何在VisionPro 9.0 QuickBuild环境中使用C#脚本调用Halcon 23.11深度学习模型,提供从环境配置到模型集成的保姆级图文教程。重点解决图像格式转换、许可证配置等工业视觉检测中的常见问题,帮助开发者快速实现高效、稳定的视觉检测流水线部署。

weixin_27027459的博客 399

302 重定向

服务器来发起的,浏览器使用者无法控制,相对地就可以称为“被动跳转”,这在 HTTP 协议里有个专门的名词,叫做“重定向”(Redirection)。 重定向的过程其实之前我们就已经见过重定向了,在第 12 讲里 3××状态码时就说过,301 是“永久重定向”, 302 是“临时重定向”,浏览器收到这两个状态码就会跳转到新的 URI。 ...

zhaoyangjian724的专栏 4162

adb 通信协议分析以及实现 (三) (Adb 网络通信部分解析)

这篇文章说下adb 和adb 服务进程之间通信的socket 协议。  adb 服务进程启动之后,会监视本地的5037 端口,使用的是TCP 协议,所以adb 发送的命令其实就是往本地的5037 端口发送数据,做过网络编程的都知道,本机可以用127.0.0.1 ip地址。 有了ip 地址和端口号socket 通信就没问题 1)  命令发送方式      

inforecovvery的博客 2850

user.go

package models type User struct { UserId string `json:"username" db:"id"` Username string `json:"username"` Password string `form:"password" json:"password"` Account string `form:"account" js

u012576527的博客 3787

武汉竟升公司 WebSphere Portal 内容管理升级实施方案

<spanlang=EN-US style=font-size:24.0pt><spanstyle="mso-spacerun: yes"> TOC /o "1-3" /h /z /u <spanstyle=mso-element:field-separator>1 客户环境   <spanstyle=color:windowtext

夜澜偶作庄周梦 酒后聊为楚客狂 8992

301永久重定向实现方式302重定向(再次更新)

在我们的网站建设中,时常会遇到需要网页重定向的情况:象网站调整,如改变网页目录结构,网页被移到一个新地址,再或者,网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户还会得到一个404页面错误信息,访问流量白白丧失;再如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点,等等

LaoChai的专栏 4761

301永久重定向实现方式302重定向(侧重.htaccess

在我们的网站建设中,时常会遇到需要网页重定向的情况:象网站调整,如改变网页目录结构,网页被移到一个新地址,再或者,网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户还会得到一个404页面错误信息,访问流量白白丧失;再如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点,等等...

weixin_30809173的博客 144

php 302临时重定向,php实现301永久重定向302临时重定向方法

服务器301302对于搜索引擎来讲一个是永久的跳新的地址了,一个是告诉你暂时到了一个新地址了,那么我们在php中怎么实现301永久重定向302临时重定向呢,下面我们一起来看看方法的实现程序.实现重定向的原理很简单,就是Web服务器返回个HTTP header给浏访问者,PHP发送HTTP header这个功能是由header()函数来实现的,301,302,404 这些状态码是在HTTP协...

weixin_34357209的博客 305

java 301_JAVA语言实现301永久重定向方法

本文主要向大家介绍了JAVA语言实现301永久重定向方法,通过具体的代码向大家展示,希望对大家学习JAVA语言有所帮助。代码实例://转到iq.jspout.clearBuffer();response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);Stringparam=request.getQueryString();respo...

weixin_39892842的博客 780

什么是HTTP重定向?在PHP中如何实现301302重定向?使用场景是什么?底层原理是什么?

HTTP重定向是一种服务器响应客户端请求的方式,它告诉客户端去访问另一个URL。当服务器发送一个重定向响应时,它会返回一个特定的状态码(如301302),并在响应头中包含Location字段,指示新的URL位置。客户端收到这个响应后,通常会自动发起对新URL的请求。HTTP重定向是一种常用的Web技术,用于将客户端请求从一个URL重定向到另一个URL。301302是两种常见的重定向状态码,分别表示永久重定向和临时重定向。在PHP中,可以通过header()函数轻松实现这两种重定向

长风破浪会有时的博客 923

python重定向的三种方式

python重定向的三种方式 方式一 使用django中的redirect方法,也是最常用的方法 from django.shortcuts import redirect return redirect('https://www.baidu.com/') 重定向默认都是302(临时重定向),加上permanent就可以设置为301永久重定向) return redirect("http://www.baidu.com",permanent =True) 方式二 使用HttpResp

helloMrHan的博客 5221

nginx - 实现域名跳转的几种方式

本文介绍了Nginx实现域名跳转的几种常用方式301永久重定向:适用于域名更换、SEO优化场景,会通知搜索引擎更新索引 302临时重定向:适合活动页、营销短链等临时跳转需求 HTTPS强制跳转:提升网站安全性 www规范化:统一使用www前缀或裸域名 正则匹配跳转:处理复杂路径转换需求 文章对比了301302的区别,解释了$request_uri变量的作用,并提供了实际配置示例。建议优先使用Nginx层跳转,因其性能高效且对SEO友好。最后解答了常见问题,包括状态码选择、路径保留等实际应用场景。

尽日寻春不见春,芒鞋踏遍陇头云。归来笑拈梅花嗅,春在枝头已十分。 1979

java 301_JAVA实现301永久重定向方法

代码实例:// 转到iq.jspout.clearBuffer();response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);String param = request.getQueryString();response.setHeader("Location","iq.jsp"+(param==null?"":("?"+param...

weixin_39978696的博客 530

分地区人口年龄构成及抚养比(2000-2019).zip

分地区人口年龄构成及抚养比(2000-2019).zip

上一篇: Ruby on Rails 和 J2EE:两者能否共存?
下一篇: 二级域名与一级目录之间该如何选择?
JackieCong
博客等级 码龄21年 28粉丝 42原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值