困扰很久的301重定向问题了,相信很多Windows主机的用户都会遇到和我一样的问题,特共享此插件,希望它没有辜负大家
这个插件是由Enforce www. Preference修改而来的,改插件代码如下
if ( strpos($_SERVER['HTTP_HOST'], 'www.') === 0 && strpos(get_bloginfo('home'), 'http://www.') === false ) {
$qs = $_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ':80')+3);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://' . substr($_SERVER['HTTP_HOST'], 4) . $_SERVER['PATH_INFO']);
exit();
} elseif ( strpos($_SERVER['HTTP_HOST'], 'www.') !== 0 && strpos(get_bloginfo('home'), 'http://www.') === 0 ) {
$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ':80')+3);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.' . $_SERVER['HTTP_HOST'] . $_SERVER['PATH_INFO']);
exit();
}
?>
经过测试发现此插件并不完全适用于Windows主机下,http://bestjq.com直接使用该插件的结果是主页显示空白页,而其他页面均完美通过代码实现了301转发,去除第一段if 则实现301转发,但是主页转发后并没有去除“index.php”这点是非常让人觉得遗憾的地方,结果一些时间的思考终于找到了完美的解决办法,对if else语句进行了部分修改,经过测试能够完美实现Windows主机下强制加入/去掉WWW前缀和去除主页index.php后缀,欢迎大家下载使用,如有更好的修改方法或者有问题请告诉我。
下载地址:http://bestjq.com/wp-content/uploads/Enforce-www-and-index.rar
使用说明:1.有无www.是根据wordpress设置里面网站地址和博客地址决定的
2.在此之前可能要处理过永久链接的去除index.php问题去除的办法是在根目录下404.php内写入以下代码(如果出现404错误)
<?php
$qs = $_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ':80')+3);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
?>
转载原创文章请注明,转载自:BestJQ[http://bestjq.com]

大家好,时间过得真快,转眼有一年半没更新了,PR也从3降回到1了,这一年多的时间里发生了种种的变故,甜美的笑容早已不属于我,等一切都平静了,一定重新打理小站,感谢一堆网友的不离不弃,友链中觉得不在继续的可以把本站链接先删除,等我再次如头像中微笑时,必是我归来之日,谢谢大家
试过你的插件,发现一个问题,打开内页后,如果想301跳转的话就直接跳到首页上了而不是原来的页面,有解决的办法吗?
还有加入domain.com/index.php并不能301跳转到domain.com上
Visionaer Reply:
四月 14th, 2010 at 15:00
@Terence, 请注意看最后,要想办法先不显示index.php,不过最好还是选择linux的主机比较好
在此之前我的网站已通过httpd.ini进行了伪静态,我在http://www.terence2008.info/archives/change-space.html上有写到过,你可以看到我的代码,请你看下为什么会出现我上面所说的情况?谢谢了!
说得很好,很详细,我网站的301做好了。
Well, I have been reading your blog posts daily and the reason I come on your blog frequently is its compelling content
Very interesting post. Bookmarked.
1 cheese