欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络杂谈

WordPress的301跳转实现方法大全

程序员文章站 2021-12-12 21:44:28
...
WordPress是使用非常广泛的博客程序,就是用Wordpress搭建的。今天来整理一下关于Wordpress实现301跳转的各种方法,至于什么是301,301有什么作用什么的,可以去虚拟主机实现301重定向不带WWW的301到带WWW跳转大全一文查看,本文只讲述Wordpress的301实现方法。

WordPress标准的主机环境LAMP即Linux+Apache+Mysql+PHP,所以Wordpress在设置自定义链接时,会自动生成.htaccess文件,对这个文件不了解或者不知道怎么在windows环境下创建的,可以去看的怎么在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牛为例。是把带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跳转方法,都经过了的实验,是可以实现301效果的,希望能够给大家帮助。