站长们都知道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(默认已创建)文件
打开后可看到以下代码:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
添加如下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; } #其他的配置参数 ... }
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
|
<?php
$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头部
}
?>
|
其中if($the_host !== 'www.icoa.cn')中的“!==”是不完全等于的意思,也可以用“!=”不等于,这样,除了可以将icoa.cn跳转到带www的网址,还可以把所有绑定到这个空间的域名跳转的www.icoa.cn。
因为有朋友留言说首页跳转之后网址里会出现/index.php,于是增加了一个判断是否是首页的语句。
二、在网页文件中调用301.php
1
|
<?php
include
(
"301.php"
);
//301重定向 ?>
|
将这个代码放到你所有网页的最前面。
好了,重定向就做好了,将301文件上传到网站目录,就可以去看着你的成果了。
5.
如果仅仅是对某个页面进行301跳转,其实很简单,只要在PHP页面的头部输入下面的代码就可以。
1
2
3
4
|
这个对于更换了网址或者网站结构来说非常方便,但是如果针对很多页面那么这种跳转方式就不友好了,我们应该根据不同的页面跳转的不同的网址。
如果只要对一个域名进行重定向,可以把代码简化成下面的形式:
<?php
$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();
}
?>