来自 电脑知识 2019-11-21 02:02 的文章
当前位置: 威尼斯国际官方网站 > 电脑知识 > 正文

301重定向的代码,301重定向实现模式

 什么是301重定向呢? 

1、Linux主机重定向 Godaddy的Liunx主机,Godaddy本身已经帮衬Apache,所以一向开立一个.htaccess文本就足以了,日常的话,在地面不能创立.htaccess的时候能够先创制三个txt格式文件,上传出根目录的时候再重命名称叫".htaccess"就足以了。互连网广大怎么进行301重定向的课程,无论是整站重定向如故单页重定向。上面就以小编的www.jb51.net为例
1.1 无www域名转移到www域名

   301重定向是当顾客或探索引擎向网址服务器发出浏览央浼时,服务器重返的HTTP数据流中头音讯(header)中的状态码的大器晚成种,表示本网页永恒性转移到另三个地方。此外经常见到的状态码还包蕴,200象征一切符合规律,404网页找不到,302不常转向,等等。 

复制代码 代码如下:

   为何要用301转会? 

RewriteEngine on
rewritecond %{http_host} ^jb51.net [nc]
rewriterule ^(.*)$ //www.jb51.net/$1 [r=301,nc]

   网站转向方法首要不外乎:301转发,302转发,JavaScript转向,PHP/ASP/CGI转向,META REFRESH网页META刷新等。302转会或者会有UCR-VL规范化难题。其余形式都以常用的作弊手腕,当然不是说不可以正本地用,方法本人并对的,但被作弊者用多了,寻觅引擎对那几个疑心的转折都很敏感。何苦冒险吧。 

1.2 整站301重定向

   关于301转账和网站标准化难点,我们能够去读书下ZAC写的篇章。本文,仅仅切磋在ASP遇到下,怎么样设置301重定向难题;其他语言亦可参照他事他说加以考察。 

复制代码 代码如下:

   我们领略,网站的首页经常常有以下三种: 

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^jb51.net [NC]
RewriteRule ^(.*)$ //www.jb51.net/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^www.jb51.net [NC]
RewriteRule ^(.*)$ [L,R=301]

 
//www.jb51.net 
 
//www.jb51.net/index.asp 
…… 

别的风度翩翩种是在根目录下的index.php里这么弄

   很当然的,以上的这个网站方式都指向到了贰个网址,假若在搜索引擎中都启用这么些样式,那么,网页权重,P途乐都会疏散到这些网站上,固然,它们都以多个网址,而那不是我们想要的结果。那么,怎样将上述的首页格局都定向到温馨想要的网站上呢,比方//www.jb51.net,进而使得那一个散落的网页权重,PLX570都聚焦到www.jb51.net上。这里就须求利用301永世重定向了。 

复制代码 代码如下:

   ASP语言下,大家须要在暗中同意首页,如index.asp顶上部分最上方参预以下代码: 

header("HTTP/1.1 301 Moved Permanently");
header("Location:");
exit();

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

2、ASP主机301重定向 在 index.asp 或 default.asp 的最最上部参预以下几行:
代码如下:

   这里的代码是因而flymorn加工后的,您也可以依照实际必要对本代码举行适宜的改换以相符您须求的体裁。本代码自动校验未有输入www的,301跳转到www.jb51.net那些网站上,进而使得网页权重获得丰盛,达到SEO优化的指标。 

复制代码 代码如下:

   但这里现身三个主题素材,若是有链接指向到//www.jb51.net/index.asp(比如站内链接卡塔尔国,那么搜索引擎也生机勃勃律会给这么些网站方式加分,固然index.asp是私下认可首页,但我们期望的是把全部权重都授予//www.jb51.net这几个方式。有的人说,那五个花样不是都相仿啊?不等同。举例://www.jb51.net的P福睿斯为0,而//www.jb51.net/index.asp的PENCORE为2。从这一点能够见到,SE是给与是还是不是有index.asp的网站情势以分化的权重的。而采用Request.ServerVariables("SC卡宴IPT_NAME")或Request("url")获取到的后缀不论输入时是或不是含有index.asp都豆蔻梢头律再次回到index.asp,进而引致不可能判定,也回天无力利用301重定向,当然那是指仅asp语言蒙受。 

<%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","//www.jb51.net "
Response.End
%>

   近年来解决办法就是,利用js获取当前网址window.location.href,然后把那些当前网站写入cookies;asp读取那几个cookies,进而推断网站中是或不是包蕴index.asp,假如带有,就应用301重定向。建议:在别的链接中制止有直接指向index.asp的款式,富含外链及内链,越发是内链。那只是三个折中的方法。针对该难点,希望与各位高手一齐座谈。借让你有此外解决的点子,请留下您的评说。 

3、ASP.net主机301重定向 ASP .NET:
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","//www.jb51.net");
}
本人封装在二个类里:

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

复制代码 代码如下:

复制代码 代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI;
using System.Web.UI.HtmlControls;
namespace ClassLib
{
public class URLClass
{
private bool flag301 = false;//是不是运维 301
private bool isIndex = false;//是或不是 再次来到主页 或许封存在当前页
/// <summary>
/// 构造函数
/// </summary>
/// <param name="fl">是或不是运行 301</param>
/// <param name="page">Page</param>
/// <param name="strURL">格式www.xxx.com</param>
public URLClass(bool fl, Page page, string strURL)
{
flag301 = fl;
URL301(page, strURL);
}
/// <summary>
/// 再次回到主页
/// </summary>
/// <param name="page"></param>
/// <param name="strURL">格式www.xxx.com</param>
public void URL301(Page page, string strURL)
{
//301重定向
if (page.Request.Url.DnsSafeHost != strURL && flag301 == true)
{
page.Response.Clear();
page.Response.StatusCode = 301;
page.Response.Status = "301 MovedPermanently";
page.Response.AddHeader("Location", "http://" + strURL);
page.Response.End();
}
}
}
}

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

4 PHP的301重定向

<%  
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", "//www.jb51.net"  
Response.End  
end if  
%>  

header('HTTP/1.1 301 Moved Permanently');//发出301头部
header('Location:

   不过特不满,借使那么些网站格局不是实际的人为输入,而是搜索引擎访谈的结果,搜索引擎又是忽略JS的,也正是说,js里赋值的cookie并不可能被SE识别,进而变成也无法使用301跳转。那个主题材料有待解决。 

本人用301.inc.php文件写了301代码,在此外文件底部都援引上 就足以了

   别的语言下的301重定向: 

复制代码 代码如下:

本文由威尼斯国际官方网站发布于电脑知识,转载请注明出处:301重定向的代码,301重定向实现模式

关键词: