重定向是建站当中一个很常用的功能。比如网站更换域名了,需要把老域名用301的方式重定向到新域名。这样可以迅速把网站权重转移到新域名,使得新站的排名尽量代替原网站的排名,使网站损失减少到最小程度。
除了更换域名,网站某个文件夹或者文件有变动的时候,也可以使用重定向功能。比如你把论坛从www.****.com/bbs/移动到了 bbs.****.com 就需要重定向一下。
重定向有两种,分别介绍一下:
301 redirect:
301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做重定向。
以下一些情况下可以使用301重定向:
- 将旧网址重定向到新网址
- 设置多个域名指向同一个网站
- 只执行一个版本的地址(www或没有www),即将不带www的域名指向www域名
- 协调URL结构变化
302 redirect:
302代表暂时性转移(Temporarily Moved ),以前不少Black Hat SEO(黑帽SEO)曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,所以推荐用301,这个是最符合seo方式的重定向。不会被搜索引擎k,可以最大限度减少您更换域名带来的影响。
在实际操作过程中有多种方法可以实现301重定向的目的:
一、PHP单页重定向
重定向一个静态页面,只需要将以下代码写入 index.php文件中。
<?php header(“HTTP/1.1 301 Moved Permanently”); header(“Location: http://www.newdomain.com/page.html”); exit(); ?>
二、PHP Canonical 重定向
Canonical 301重定向将增加或减少所有页面的www前缀,下面这串代码可以实现将http://*****.com 定向到http:www.*****.com。
<?php if (substr($_SERVER[“HTTP_HOST”],0,3) != “www”) { header(“HTTP/1.1 301 Moved Permanently”); header(“Location: http://www.”.$_SERVER[“HTTP_HOST”] .$_SERVER[“REQUEST_URI”]); } ?>
三、 .htaccess 重定向
使用Apache重定向需要将代码写进.htaccess文件。
以下将详细讲一讲如何通过修改.htaccess进行301重定向。注意:在设置301重定向之前务必备份相应目录下的.htaccess文件。
1.域名重定向
yourdomain.com到www. yourdomain.com
这种重定向主要目的是为了实现网站访问路径的唯一性,对于网站SEO至关重要。
打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,如果是子域名需要将主域名修改为子域名)
RewriteEngine On RewriteCond %{HTTP_HOST} !^www. yourdomain.com$ [NC] RewriteRule ^(.*)$ http://www. yourdomain.com/$1 [L,R=301]
重定向带www的域名到不带www的域名可以反向操作:
RewriteEngine On RewriteCond %{HTTP_HOST} !^ yourdomain.com$ [NC] RewriteRule ^(.*)$ http:// yourdomain.com/$1 [L,R=301]
2.重定向老域名到新域名:
重定向olddomain.com到newdomain.com
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !olddomain.com$ [NC] RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]
3、如果新老域名的网页结构发生变化,可以使用以下方法重定向:
重定向olddomain.com/file/file.php 到 newdomain.com/otherfile/other.php
RewriteCond %{HTTP_HOST} ^www.olddomain.com$ RewriteRule ^file/file.php$ http://www.newdomain.com/otherfile/other.php [R=301,L]
4、http301转向到https:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
除了以上通过代码设置301转向之外,我们还可以通过网站管理系统的面板中进行301重定向:
1、Cpanel301重定向:
虚拟主机大多数使用cpanel面板,那么我们可以面板中找到:
2、宝塔面板301重定向:
以上就是网站进行301跳转设置的几种方法,基本上我们需要的设置情况都在里面包括了,大家可以自己试一下。设置301重定向之后我们可以通过下面的在线工具检测301设置是否成功:
https://www.seoconsultants.com/tools/www-redirect-checker