当前位置:云好站网站目录 » 文章资讯 » 网站运营 » 文章详细

301重定向设置方法大全(301重定向多久生效)

网站运营 101

301重定向怎么设置?我想信这是很多新手或不懂技术的朋友会遇到的问题,下面就详细介绍下宝塔Unix/Linux系统Apache服务器,windows系统iis服务器301重定向设置方法,以及各种形式的301重定向设置方法大全,301重定向多久生效等问题 ,话不多说直奔主题。

一、Apache服务器实现301重定向

  如果网站使用LAMP(Linux + Apache + MySQL + PHP)主机,可以利用Apache的mod_rewrite对URL进行重写或重定向。需要以下几步:

  1、首先确保开启了mod_rewrite功能。

  用文本编辑器打开Apache安装目录\conf\httpd.conf,找到“#LoadModule rewrite_module modules/mod_rewrite.so”这行,去掉前面的“#”;

  继续查找“AllowOverride None”,修改为“AllowOverride All”;

  然后,重启Apache即可。

  2、在你需要URL重定向的网站根目录下放一个.htaccess文件,文件名是.htaccess,Windows下不能直接建立,你可以用记事本另存为。

  3、在.htaccess中通过正则表达式重定向到需要的页面。示例如下:

  将不带www的顶级域名301重定向到带www的域名

Options+FollowSymLinksRewriteEngineOnRewriteCond%{HTTP_HOST}^hkm168.com[NC]RewriteRule^(.*)$http://www.hkm168.com/$1[L,R=301]

  将页面301重定向到另外一个页面

Options+FollowSymLinksRewriteEngineOnRewriteRule^/oldpage.html$/newpage.html[NC,L,R=301]
二、IIS服务器下做301重定向设置方法

  示例:将hkm168.com 跳转到 www.hkm168.com

  1、新建一个站点,对应目录如d:\site。该站点主要用于转向,目录可以是空的,不需要任何文件。然后为该站点绑定要跳转的域名hkm168.com,如图:

  2、在IIS中选中刚才我们建立的站点,右键,属性,主目录,选择重定向到,输入另一个绑定好 www.hkm168.com 域名的网站地址(这个网站下存放有网站内容)。输入的地址是:http://www.hkm168.com$S$Q,同时注意选中下面的"资源的永久重定向选项" 和 “上面输入的准确URL” 这2个选项。如下图:

  对于$S$Q字符,这里解释一下:

  $S 将请求的URL的后缀传递给新的URL。后缀是用重定向的URL 代替之后,初始URL 中所保留的部分。

  如果未选中 "上面输入的准确URL" 选项,则结果目标URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。

  $Q 将初始URL中的参数(如 querystring 参数)传递至新的 URL,包括问号(?)。

  如果不加上 $S$Q 字符的话,内页的301都会跳转到首页,加上$S$Q字符的目的就是内页也能准确的跳转到新域名的对应内页。

  好了,这样就完成了301永久重定向的设置,设置好之后最好能测试一下301重定向是否成功。站长工具的HTTP状态工具(http://tool.chinaz点com/pagestatus/)即可查到,如果查到的返回状态是301就说明你已经成功了。

三、使用ISAPI_Rewrite实现IIS的301重定向

  ISAPI_Rewrite是用于IIS的第三方URL重写组件。它是基于正则表达式的,类似Apache mod_rewrite功能,不仅可以实现URL重写,还可以实现301重定向。

  ISAPI_Rewrite组件有免费版(Lite)以及商业版(Full),免费版只支持全局httpd.conf 配置,不能对每个站点进行单独设置,而商业版可以让每个站点自定义URL重写规则,只要将httpd.ini 放在站点根目录下就能生效。

  请使用 ISAPI_Rewrite 2.x 或者 最新的3.0 版本(它兼容Apache的mod_rewrite的语法),而较早的1.x 版本不支持301重定向功能。

  下面给出示例:

  1. 将不带www的顶级域名301重定向到带www的域名

#ISAPI_Rewrite2.x版本[ISAPI_Rewrite]#3600=1hourCacheClockRate3600RepeatLimit32RewriteCondHost:^hkm168\.com$RewriteRule(.*)http://www.hkm168.com$1[I,RP]
#ISAPI_Rewrite3.0版本[ISAPI_Rewrite]#3600=1hourCacheClockRate3600RepeatLimit32RewriteCond%{HTTP:Host}^hkm168\.com$RewriteRule(.*)http://www.hkm168.com$1[NC,R=301]

  2. 不同域名之间的301转向

#ISAPI_Rewrite2.x版本[ISAPI_Rewrite]#3600=1hourCacheClockRate3600RepeatLimit32RewriteCondHost^www\.hkm168\.com$RewriteRule(.*)http://www.hkm168.com$1[I,RP]
#ISAPI_Rewrite3.0版本[ISAPI_Rewrite]#3600=1hourCacheClockRate3600RepeatLimit32RewriteCond%{HTTP:Host}^www\.hkm168\.com$RewriteRule(.*)http://www.dayku.com$1[NC,R=301]

  3. 将页面301重定向到另外一个页面

#ISAPI_Rewrite2.x版本[ISAPI_Rewrite]#3600=1hourCacheClockRate3600RepeatLimit32RewriteRule^/oldpage.html$/newpage.html[I,O,RP,L]
#ISAPI_Rewrite3.0版本[ISAPI_Rewrite]#3600=1hourCacheClockRate3600RepeatLimit32RewriteRule^/oldpage.html$/newpage.html[NC,L,R=301,O]
四、在网页后台程序中实现301重定向

  如果页面是ASP/PHP/JSP/ASP.NET 可以再后台代码中做301重定向。

  但是我个人不推荐这样,因为在服务器上做301跳转是在你的页面执行之前就开始跳转,效率高。而程序代码中做301,要为每个页面头部加转向代码,比较麻烦。

  示例如下:

  1、PHP下的301重定向

<?  Header("HTTP/1.1301MovedPermanently");  Header("Location:http://www.hkm168.com");?>

  2、ASP下的301重定向

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

  3、ASP .NET下的301重定向

<scriptrunat="server">privatevoidPage_Load(objectsender,System.EventArgse){Response.Status="301MovedPermanently";Response.AddHeader("Location","http://www.hkm168.com");}</script>

  4、JSP下的301重定向

<%response.setStatus(301);response.setHeader("Location","http://www.hkm168.com");response.setHeader("Connection","close");%>

  提示:如果返回报头中只有Location,但没有明确提到状态代码时,就意味着一个302临时重定向。请谨记于心。例如下面都是302重定向:

  PHP 下的302重定向

<?phpheader("Location:http://www.hkm168.com");?>  

  Asp 下的302重定向

<%Response.Redirect"http://www.hkm168.com/"%>

  ASP.NET 302重定向

<scriptrunat="server">privatevoidPage_Load(objectsender,System.EventArgse){Response.Redirect("http://www.hkm168.com");}</script>

  JSP 下的302重定向

<%response.sendRedirect("http://www.hkm168.com");%>

五、网站设置301重定向多久生效?

一般情况,当服务器设置完301重定向后,马上就会生效,如果设置方法是正确的,但没有生效,可以清除浏览器缓存,再打开就会生效跳转。如果是不想要301跳转了,删除301重定向规则,生效时间也是一样,马上就会生效。

如果是老站301重定向到新站,想要继承老站的收录,权重和流量,一般则需15天到两个月,现在搜索引擎无法承诺301跳转的收效时间,因为收效时间会受许多要素影响,比方蜘蛛抓取这个页面时发现设置了301的时间、首选域名、网页的重要程度以及本身质量等,这些都是不可控要素,希望我们耐性等候。

目前谷歌会传递大部分权重,但不是百分之百权重。百度会传递所有权重。Google对301的识别、反应、完成权重传递,需要1~3个月时间。百度对301处理也是需1~2个月。

总结:301重定向是一种对搜索引擎最友好的网址转向方法。在众多重定向技术中,301永久性重定向是最为安全的一种途径,也是极为理想的一款解决方案。无论是URL永久性改变,还是多种格式URL规范化都离不开301重定向。