[[IT知识]] 全面解析301重定向:为何它至关重要及如何正确实施

[复制链接]
查看: 36|回复: 0
发表于 2025-2-10 09:45:00 | 显示全部楼层 | 阅读模式
易博V9下载

全面解析301重定向:为何它至关重要及如何正确实施

什么是301转向?

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

其它常见的状态码还包括,200表示一切正常,404网页找不到,302暂时转向,等等。

为什么要做网址转向?

除了前面介绍过的网址规范化问题外,还有很多需要做网址转向的情形。比如,为保护版权或者你拥有不同的多个域名。

为什么要用301转向?

网址转向方法主要包括:301转向,302转向,JavaScript转向,PHP/ASP/CGI转向,META REFRESH网页META刷新,等。302转向可能会有URL规范化问题。其它方法都是常用的作弊手法,当然不是说不可以正当地用,方法本身没有错,但被作弊者用多了,搜索引擎对这些可疑的转向都很敏感。何必冒险呢。

当网页A用301重定向转到网页B时,搜索引擎可以肯定网页A永久的改变位置,或者说实际上不存在了,搜索引擎就会把网页B当作唯一有效目标。好处是,第一,没有网址规范化问题,第二,也很重要的,网页A的整个权重值会转移到网页B(目前百度及谷歌已声明:转移全部权重)。

Apache下301转向代码:

修改.htaccess文件,输入下列内容(需要开启mod_rewrite):

1)将不带WWW的域名转向到带WWW的域名下:

  1. Options +FollowSymLinks
  2. RewriteEngine on
  3. RewriteCond %{HTTP_HOST} ^xxxx.com [NC]
  4. RewriteRule ^(.*)$ http://www.xxxx.com/$1 [L,R=301]
复制代码

2)重定向到新域名:Options +FollowSymLinks

  1. RewriteEngine on
  2. RewriteRule ^(.*)$ http://www.xxxx.com/$1 [L,R=301]
复制代码

Apache下vhosts.conf中配置301跳转:

  1. <VirtualHost *:80>;
  2. ServerName www.xxx.com
  3. DocumentRoot /home/
  4. </VirtualHost>;
复制代码

 

  1. <VirtualHost *:80>;
  2. ServerName xxxx.com
  3. RedirectMatch permanent ^/(.*) http://www.xxxx.com/$1
  4. </VirtualHost>;
复制代码

Ruby容器中实现301跳转:

  1. def old_action
  2. headers["Status"] = "301 Moved Permanently"
  3. redirect_to "http://www.xxxx.com"
  4. end
复制代码

Coldfusion容器中实现301跳转:

  1. <.cfheader statuscode="301" statustext="Moved permanently">;
  2. <.cfheader name="Location" value="http://www.xxxx.com">;
复制代码

如果你用的是 Windows主机,应该在控制面板做301转向设定。

据我所知,HTML无法做301转向。在HTML里只能做JS或META REFRESH,但不是301转向。而如果用JS跳转就属于302了,而不是正常返回码为:301

ASP的301跳转代码:

  1. <%Response.Status="301 Moved Permanently"
  2. Response.AddHeader "Location"," http://www.xxxx.com"
  3. Response.End
  4. %>;
复制代码

PHP的301跳转代码:

  1. <?php
  2. Header("HTTP/1.1 301 Moved Permanently");
  3. Header("Location: http://www.xxxx.com");
  4. ?>;
复制代码

ASP.Net的301跳转代码:

  1. <script runat="server">;
  2. private void Page_Load(object sender, System.EventArgs e)
  3. {
  4. Response.Status = "301 Moved Permanently";
  5. Response.AddHeader("Location","http://www.xxxx.com");
  6. }
  7. </script>;
复制代码

CGI Perl的301跳转代码:

  1. $q = new CGI;
  2. print $q->;redirect("http://www.xxxx.com");
复制代码

JSP的301跳转代码:

  1. <%
  2. response.setStatus(301);
  3. response.setHeader( "Location", "http://www.xxxx.com" );
  4. response.setHeader( "Connection", "close" );
  5. %>;
复制代码
易博软件介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表