网站301重定向代码

作者: 杨圣亮 分类: SEO教程 发布时间: 2016-08-12 10:08:39

一:IIS 做301重定向

假定你已经知道怎么样在IIS上建站。比如我要将yuan.b.com 301到test.b.com 上,以IIS7为例,打开IIS管理器,在左侧【网站】里找到yuan:

点击右栏出现【功能视图】,点击 http重定向 项。按图示进行操作,完成后,点击右栏:操作->应用。重启IIS使之生效。

至此,iis的域名301重定向就做好了。iis还可以直接在站点根目录的web.config文件中写代码来做301,是某些技术控的偏爱,对平常人而言,是比较麻烦,故不提倡。

二:Apache 301重定向

apache可以通过在httpd.conf(linux服务器)配置文件或站点的 .htaccess 来做。下面逐一讲解。

1.httpd.conf做301

网站配置文件 httpd.conf(默认的apache配置文件)
有些可能不是这个文件,这取决于管理员。apache允许存在多个.conf配置文件,在多个网站的时候,完全可以在 /etc/httpd/conf.d
目录中建立各自的配置文件,非常的文件,这符合Linux的哲学,给管理员最大的自由。

假设已经支持了Rewrite模块,这是重写模块,支持该模块是前提,直接在你要做的站点配置文件里面添加以下代码,注意修改域名为你要做的域名。例:将yangshengliang.com 301到www.yangshengliang.com

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

保存后重启服务器,使之生效。

2.htaccess 做301

通过在站点.conf配置文件中添加代码实现301前提是必须拥有配置服务器的权限,如果是vps或者云服务器,并且主机是linux系统的话,那么恭喜你。第一种方法是有效的。如果仅仅是一台linux虚拟主机,情况就有点不妙。你不是服务器管理员,你有的,仅仅只是服务器众多网站中的一个而已,管理员会拒绝你来配置服务器,而且管理员也不会帮你修改站点配置文件(至少我没碰到过这么善解人意的服务器管理员)意味着,服务器的配置你不能动,要做301,只能在自己的 www 目录中做功夫。好在linux与apache的世界是如此美妙,即使你没有办法操作服务器,还是提供了一种方法来做301重定向的。那就是功能强大的.htaccess文件,有了它,302,301……,都是小菜一碟,前提是服务器必须支持
rewrite模块。方法:做网站根目录建立:.htaccess文件,添加以下代码。例:将www.yangshengliang.com 301到yangshengliang.com

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

如果不生效,很可能是httpd.conf的配置问题。打开 /etc/httpd/conf/httpd.conf 找到:

<Directory />
AllowOverride none
Require all denied
</Directory>

将AllowOverride none 替换成: AllowOverride All。

保存后,重启web服务器生效。

三: nginx服务器,配置301重定向

打开nginx.conf文件,找到server配置段.将非 www.yangshengliang.com的请求全部301到yangshengliang.com

server
{
listen 80; server_name www.yangshengliang.com yangshengliang.com;
if ($host != 'yangshengliang.com' ) {
rewrite ^/(.*)$ http://yangshengliang.com/$1 permanent;
} 

四:php做301重定向

有些时候,需要在某个单独的php文件里进行301,我曾使用过这样一个场景。2014年春节,我回老家了,SEO工作交给了另一位同事去打理,在一次百度的变化中,主站被降权了,搜索品牌词也找不到了。于是乎,我回单位上班后,启用了一个新站,在新站上布置了品牌词。一星期后,搜索品牌词,新站排名第一了。但是我想让客户点击新站的时候能进入原来的官方网站,新站毕竟内容偏少。于是我将新站首页设置为302,这样既实现了目的,302不是作弊,因此不会受到搜索引擎的惩罚,但跨主域的302依然存在着风险,应慎重使用。代码是这样的。

<?php
Header("Location: http://yangshengliang.com"); //完整域名
?> 

这是302的做法。301的做法差不多,只需要将代码中的302改写成301,并添加一行 301 moved permanently 即可,不过前提是,该页面必须是用php写的。

<?php
Header("HTTP/1.1 301 Moved Permanently");  //声明是301永久性转向
Header("Location: http://yangshengliang.com"); //转向目标地址,完整域名
?>

结语:文章共提供了四种301的方法,包括iis、Apache、Nginx三种服务器以及单个php进行301的方法,希望对有需要的人有所帮助。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

  +  8  =  17

微信