WordPress实现301重定向(跳转)的5种方法

站长们都知道301对SEO的意义,特别是首页有的站长喜欢将带www的地址直接跳转到不带www的域名地址,而又有的站长则喜欢网站地址都带上www。在网站建设过程中,可能由于前期规划不到位,或者后期改版等原因,需要修改网站域名或者链接结构,为了实现良好的SEO,一般都需要设置301重定向。

今天wordpress教程网就与大家分享wordpress中如何去实现301的跳转。

1、使用代码实现

打开根目录下得wp-blog-header.php,在< ?php后面添加如下代码:

if (strtolower($_SERVER['SERVER_NAME']) != 'www.54ux.com')
{
    
	$URIRedirect=$_SERVER['REQUEST_URI'];
	if(strtolower($URIRedirect)=="/index.php")
	{
    
		$URIRedirect="/";
	}
	header('HTTP/1.1 301 Moved Permanently');
	header('Location:http://www.54ux.com'.$URIRedirect);
	exit();
}

可以通过检查工具进行查询其状态码,推荐使用站长之家的工具,网址是http://tool.chinaz.com/pagestatus/
本站测试如下:

2、服务器中配置

a、Apache服务器可以修改.htaccess(默认已创建)文件
打开后可看到以下代码:

 mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

添加如下301的配置代码即可:

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

b、nginx添加301配置
在你nginx配置文件中的server模块配置添加如下代码:

server {
    
	server_name www.54ux.com 54ux.com;
	
	#301配置
	if ($host != 'www.54ux.com') {
    
		rewrite ^/(.*)$ http://www.54ux.com/$1 permanent;
	}
	
	#其他的配置参数
	...
	
}
3.推荐WordPress 301重定向插件:Redirection

Redirection 是一款功能非常强大的WordPress 301重定向插件,对于更换域名或者修改网站安装目录,修改分类目录等,都可以很方便地进行正确转向。Redirection 本身就包含中文语言包,使用起来应该还是比较方便的。

Redirection 的主要特点:

  • 支持WordPress、Apache重定向
  • 404 error 监测 – 抓取404 errors页面,让你轻松重定向到新页面,而不致于丢失流量
  • 支持RSS feed 404 errors 重定向
  • 可自定义重定向路径,你可以重定向一个网址到另一页面、文件或网站。
  • 支持整个网站或目录重定向
  • 可创建基于URL、浏览器、推介网址、或注册页面的重定向
  • 当一篇日志URL改变时,可以自动添加301重定向
  • Full regular expression support
  • Fully localized
  • 可以输出重定向到CSV, XML或Apache .htaccess文件
  • 支持输入Apache .htaccess 文件

Redirection 安装使用

1.在后台插件安装界面直接搜索 Redirection 即可在线安装,或者在此下载 Redirection 。

2.启用该插件后,就可以在 工具-Redirection 下进行操作。详细的使用方法,请查看插件介绍页面。

4.

一般而言,实现301重定向可以有三种方式,一是网站空间后台支持设置301重定向(这是最方便的一种)。二是根据主机ISAPI_Rewrite版本的不同,配置不同的httpd.ini文件,实现301重定向(主要针对win主机,如果是linux主机,需要配置.htaccess文件)。三是根据网站程序的不同,配置不同的网站程序,实现301重定向,下面主要来介绍第三种方式,php程序实现301重定向的方法:

一、建立一个301.php(文件名自取)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$the_host  $_SERVER [ 'HTTP_HOST' ]; //取得当前域名
$the_url  = isset( $_SERVER [ 'REQUEST_URI' ]) ?  $_SERVER [ 'REQUEST_URI' ] :  '' ; //判断地址后面部分
$the_url  strtolower ( $the_url ); //将英文字母转成小写
if ( $the_url == "/index.php" ) //判断是不是首页
{
$the_url = "" ; //如果是首页,赋值为空
}
if ( $the_host  !==  'www.icoa.cn' ) //如果域名不是带www的网址那么进行下面的301跳转
{
header( 'HTTP/1.1 301 Moved Permanently' ); //发出301头部
header( 'Location:http://www.icoa.cn' . $the_url );//跳转到带www的网址
}
?>


其中if($the_host !== 'www.icoa.cn')中的“!==”是不完全等于的意思,也可以用“!=”不等于,这样,除了可以将icoa.cn跳转到带www的网址,还可以把所有绑定到这个空间的域名跳转的www.icoa.cn。

因为有朋友留言说首页跳转之后网址里会出现/index.php,于是增加了一个判断是否是首页的语句。

二、在网页文件中调用301.php

1
include ( "301.php" );  //301重定向 ?>


将这个代码放到你所有网页的最前面。

好了,重定向就做好了,将301文件上传到网站目录,就可以去看着你的成果了。

5.

如果仅仅是对某个页面进行301跳转,其实很简单,只要在PHP页面的头部输入下面的代码就可以。

1
2
3
4
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.icoa.cn" );
?>


这个对于更换了网址或者网站结构来说非常方便,但是如果针对很多页面那么这种跳转方式就不友好了,我们应该根据不同的页面跳转的不同的网址。

如果只要对一个域名进行重定向,可以把代码简化成下面的形式: 

复制代码代码如下:

$the_host = $_SERVER['HTTP_HOST'];//取得进入所输入的域名 
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判断后面的请求部分 
if($the_host !== 'www.zhoushengwei.com')//shengwei.com是我现在的域名 

header('HTTP/1.1 301 Moved Permanently');//发出301头部 
header('Location: http://blog.csdn.net/enweitech'.$request_uri);//跳转到我的新域名地址 
exit(); 

?> 

你可能感兴趣的:(网站运营)