Skip to main content
 首页 » 网络杂谈

WordPress的301跳转实现方法大全

2014年01月02日68240
WordPress是使用非常广泛的博客程序,No牛网就是用Wordpress搭建的。今天No牛网来整理一下关于Wordpress实现301跳转的各种方法,至于什么是301,301有什么作用什么的,可以去No牛网虚拟主机实现301重定向不带WWW的301到带WWW跳转大全一文查看,本文只讲述Wordpress的301实现方法。

WordPress标准的主机环境LAMP即Linux+Apache+Mysql+PHP,所以Wordpress在设置自定义链接时,会自动生成.htaccess文件,对这个文件不了解或者不知道怎么在windows环境下创建的,可以去看No牛网的怎么在Windows系统创建.htaccess文件一文。Wordpress默认生成的.htaccess文件内容如下:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

wordpres根目录301跳转

首先来说一下Wordpress在根目录的301跳转,以No牛为例。No牛网是把带www的子域名301到不带www的根域名的,所以修改后的.htaccess文件内容如下:

# BEGIN WordPress
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{http_host} ^noniu.com [NC]
RewriteRule ^(.*)$ https://www.noniu.com/$1 [L,R=301]
rewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
rewriteRule ^index\.php$ https://www.noniu.com/ [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

如果你是向把带www301子域名跳转到根域名的呢?只需要调换一下,noniu.com修改为www.noniu.com,https://www.noniu.com修改为http://noniu.com。

wordpress二级目录301跳转

然后来说一下Wordpress安装在二级目录301跳转的实现方法,假设是安装在blog目录下面。还是以No牛为例,把带www的子域名301到不带www的根域名的,所以修改后的.htaccess文件内容如下:

# BEGIN WordPress
RewriteEngine On
RewriteCond %{http_host} ^noniu.com [NC]
RewriteRule ^(.*)$ https://www.noniu.com/blog/$1 [L,R=301]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /blog/index\.php\ HTTP/
RewriteRule ^index\.php$ https://www.noniu.com/blog [R=301,L]
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
# END WordPress

如果你是相反的,跟上面是一样的道理。

使用php代码301跳转

最后来说一下Wordpress使用php代码来实现301跳转的方法,这个方法对基本上所有的php程序都是适用的。如果你的主机不支持.htaccess文件,可以使用php代码实现301跳转。比较简单的php301跳转代码是将原域名下的所有地址都将转跳到新域名的首页,代码放入到根目录的index.php的最开始的地方就行了。以下就是具体的代码:

$the_host = $_SERVER['HTTP_HOST'];//取得当前域名
if($the_host != 'noniu.com')//判断获取的这个域名是不是你想要的(即定向后的域名)
{
header("HTTP/1.1 301 Moved Permanently");//发出301头部
header("Location:noniu.com) //跳转到你希望的域名
exit();
}

另一种php的301跳转代码比较麻烦一点,不过效果会好一些。代码可以将原域名下的所有链接地址定向到对应新域名的地址,即:域名变化,但是参数不变的。代码也是放入根目录下的index.php文件最开始的地方,具体的实现代码如下:

$the_host = $_SERVER['HTTP_HOST'];//取得当前域名
if(strtolower($the_host) != 'noniu.com')//把这里的域名换上你想要的
{ $URIRedirect=$_SERVER['REQUEST_URI']; //获取域名后的参数
if(strtolower($URIRedirect)=="/index.php")//判断是参数为/index.php就显示为/
{
$URIRedirect="/";
}
header("HTTP/1.1 301 Moved Permanently");//发出301头部
header("Location: noniu.com")跳转到你希望的地址格式
exit();
}

以上是一些比较常用的Wordpress的301跳转实现方法,你也可以使用Wordpress的插件实现这个功能。如果你是IIS7的web服务器,也可以查看win主机IIS7利用web.config设置301重定向及自定义404页面一文来了解IIS7的Wordpress301实现方法。本文中所用到的301跳转方法,都经过了No牛网的实验,是可以实现301效果的,希望能够给大家帮助。

评论列表暂无评论
发表评论