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效果的,希望能够给大家帮助。
上一篇: 如何让谷歌搜索列表显示网站作者头像信息
下一篇: 如何提高下载源码的安全性