【php方式】完美的WordPress www 301重定向方法
一般我们的实现WordPress伪静态的方法都是通过修改一些服务器配置文件来完成的,如httpd.ini、. htaccess等。对于经常WordPress建设建群的人来说是不是太繁琐了呢,每建一个站点都需要修改这些文件多麻烦,那么有没有什么方法能避免这些繁琐的修改呢?答案是使用php方式,按照以下说明修改WordPress主题文件即可。
功能概述:
实现如非www域名301重定向跳转到www域名,例如:aizhan.com 跳转到 www.aizhan.com
根据你在wordpress的 “设置==》常规==》站点地址”设置的首页地址来作为首选域,其他非首选域均会重定向到首选域。如果你使用多个域名,系统将使用你设置的站点地址作为首选域!
改代码非常适合懒人使用哈,不用写.htaccess就可以实现301重定向。
linux环境复制以下代码:
$host = str_replace("http://","",get_home_url()); $request_url = str_replace('index.php','',strtolower($_SERVER['REQUEST_URI'])); if ($_SERVER['HTTP_HOST'] != $host || ($_SERVER['HTTP_HOST'] == $host && strpos($_SERVER["REQUEST_URI"],"index.php"))) { header("HTTP/1.1 301 Moved Permanently"); header("Status: 301 Moved Permanently"); header("Location: http://". $host . $request_url); exit(); } unset($host); unset($request_url);
windows环境复制以下代码:
$host = str_replace("http://","",get_home_url()); $request_url = str_replace('index.php','',strtolower($_SERVER['HTTP_X_REWRITE_URL'])); if ($_SERVER['HTTP_HOST'] != $host || ($_SERVER['HTTP_HOST'] == $host && strpos($_SERVER["HTTP_X_REWRITE_URL"],"index.php"))) { header("HTTP/1.1 301 Moved Permanently"); header("Status: 301 Moved Permanently"); header("Location: http://". $host . $request_url); exit(); } unset($host); unset($request_url);
使用方法:
复制以上代码另存为301.php,在主题头部文件header.php最上方引入require_once(’301.php’ );