设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间01 现在时间01 缓存数据 晚安,心上人,但愿,早日同床枕。

晚安,心上人,但愿,早日同床枕。

查看: 1185|回复: 3

301重定向实现方法,及对网站优化的作用

[复制链接]

  离线 

TA的专栏

  • 打卡等级:热心大叔
  • 打卡总天数:205
  • 打卡月天数:0
  • 打卡总奖励:3134
  • 最近打卡:2023-08-27 08:03:57
等级头衔

等級:晓枫资讯-上等兵

在线时间
0 小时

积分成就
威望
0
贡献
405
主题
373
精华
0
金钱
4319
积分
810
注册时间
2022-12-24
最后登录
2025-5-31

发表于 2023-4-9 08:08:37 | 显示全部楼层 |阅读模式
什么是301重定向呢?  

   301重定向是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。其它常见的状态码还包括,200表示一切正常,404网页找不到,302暂时转向,等等。  

   为什么要用301转向?  

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

   关于301转向和网址规范化问题,大家可以去阅读下ZAC写的文章。本文,仅仅讨论在ASP环境下,如何设置301重定向问题;其他语言亦可参考。  

   我们知道,网站的首页一般有以下几种:  

http://yzwlo.com  
https://www.yzwlo.com  
http://yzwlo.com/index.asp  
https://www.yzwlo.com/index.asp  
……  

   很自然的,以上的这些网址形式都指向到了一个网站,如果在搜索引擎中都启用这些形式,那么,网页权重,PR都会分散到这几个网址上,虽然,它们都是一个网站,而这不是我们想要的结果。那么,如何将以上的首页形式都定向到自己想要的网址上呢,比如https://www.yzwlo.com,从而使得这些分散的网页权重,PR都集中到www.yzwlo.com上。这里就需要使用301永久重定向了。  

   ASP语言下,我们需要在默认首页,如index.asp顶部最上方加入以下代码:  

<%  
Dim dm,sn  
dm=Request.ServerVariables("Server_name")  '获取域名  
'这里的3是指www的长度  
if left(dm,3)<>"www" then  
Response.Status="301 Moved Permanently"   
Response.AddHeader "Location", "https://www.yzwlo.com"  
Response.End  
end if  
%>  

   这里的代码是经过flymorn加工后的,您也可以根据实际需要对本代码进行适当的修改以适合你需求的样式。本代码自动校验没有输入www的,301跳转到www.yzwlo.com这个网址上,从而使得网页权重得到累加,达到SEO优化的目的。  

   但这里出现一个问题,如果有链接指向到https://www.yzwlo.com/index.asp(比如站内链接),那么搜索引擎也同样会给这个网址形式加分,虽然index.asp是默认首页,但我们希望的是把所有权重都给与https://www.yzwlo.com这个形式。有人说,这两个形式不是都一样吗?不一样。比如:https://www.yzwlo.com的PR为0,而https://www.yzwlo.com/index.asp的PR为2。从这点可以看出,SE是给与是否有index.asp的网址形式以不同的权重的。而使用Request.ServerVariables("SCRIPT_NAME")或Request("url")获取到的后缀无论输入时是否带有index.asp都一律返回index.asp,从而导致无法判断,也无法使用301重定向,当然这是指仅asp语言环境。  

   目前解决方法就是,利用js获取当前网址window.location.href,然后把这个当前网址写入cookies;asp读取这个cookies,从而判断网址中是否包含index.asp,如果包含,就使用301重定向。建议:在任何链接中避免有直接指向index.asp的形式,包括外链及内链,尤其是内链。这只是一个折中的方法。针对该问题,希望与各位高手一起讨论。如果您有其他解决的方法,请留下您的评论。  

   利用js通过cookies给asp传递网址的代码如下:  


<script language="javascript">   
var url=window.location.href.toLowerCase(); //小写   
document.cookie = "urlck" + "=" + escape(url);   
</script>   

<%   
Dim sn   
sn=request.cookies("urlck")  '获取后缀   
response.cookies("urlck")=""  '清空cookies   

if right(sn,11)="default.asp" then   
Response.Status="301 Moved Permanently"   
Response.AddHeader "Location", "https://www.yzwlo.com"   
Response.End   
end if   
%>  

   但是很遗憾,如果这些网址形式不是实际上的人为输入,而是搜索引擎访问的结果,搜索引擎又是忽略JS的,也就是说,js里赋值的cookie并不能被SE识别,从而导致也无法使用301跳转。这个问题有待解决。  

   其他语言下的301重定向:  

1、Unix/Linux+Apache主机,在.htaccess文件中增加301转向指令,采用 mod_rewrite 技术,如:PHP代码  


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


2、Window+IIS主机,在服务器软件的系统管理员配置中设置,方法:  

打开Internet信息服务管理器,在欲重定向的网页或目录上按右键,选中“重定向到URL”,在对话框中输入目标页面的地址,记得选中“资源的永久重定向”->“应用” 。  

3、用PHP/ASP .NET实现301转向(HTML无法做301转向),方法如下:  

1)用PHP实现  

PHP代码  

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

2)用ASP.NET实现  

ASP/Visual Basic代码  

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

   经过这些设置后,301转向应该可以配置OK啦,如果想检查一下是否正确,则可以使用网上提供Server Header检查工具,如Check Server Headers Tool - HTTP Status Codes Checker。  

   用以上检测http状态码工具,可以做个简单的检查,如检查http://yzwlo.com,返回的结果如下:  

#1 Server Response: http://yzwlo.com  
HTTP Status Code: HTTP/1.1 301 Moved Permanently  
Connection: close  
Date: Mon, 25 Feb 2008 01:54:09 GMT  
Server: Microsoft-IIS/6.0  
X-Powered-By: ASP.NET  
Location: https://www.yzwlo.com  
Content-Length: 0  
Content-Type: text/html  
Set-Cookie: ASPSESSIONIDACBCSBDR=FCJELLLALFNPOCMBNMOLMJHN; path=/  
Cache-control: private  
Redirect Target: https://www.yzwlo.com  

#2 Server Response: https://www.yzwlo.com  
HTTP Status Code: HTTP/1.1 200 OK  
Connection: close  
Date: Mon, 25 Feb 2008 01:54:13 GMT  
Server: Microsoft-IIS/6.0  
X-Powered-By: ASP.NET  
Content-Length: 29330  
Content-Type: text/html  
Set-Cookie: ASPSESSIONIDACBCSBDR=GCJELLLAECPBADKMADAJOBLC; path=/  
Cache-control: private  


   注意以上返回的结果中第二行“HTTP Status Code: HTTP/1.1 301 Moved Permanently”,说明这个网址采用了301永久重定向功能了,设置成功。如果您对本文有任何看法,欢迎留下您的评论,以便我们一起探讨。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
19
积分
18
注册时间
2022-12-25
最后登录
2022-12-25

发表于 2024-12-15 00:55:29 | 显示全部楼层
感谢楼主分享。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
17
积分
14
注册时间
2022-12-24
最后登录
2022-12-24

发表于 2025-2-20 04:37:20 | 显示全部楼层
路过,支持一下
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
20
积分
20
注册时间
2022-12-26
最后登录
2022-12-26

发表于 2025-2-21 02:04:42 | 显示全部楼层
感谢楼主,顶。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼
3楼
4楼

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表