‘Enforce www.and index.php’实现IIS下虚拟主机301重定向

困扰很久的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]

本文链接: http://bestjq.com/enforce-www-and-index/

7 条评论 »

  1. avatar Terence Says:

    试过你的插件,发现一个问题,打开内页后,如果想301跳转的话就直接跳到首页上了而不是原来的页面,有解决的办法吗?
    还有加入domain.com/index.php并不能301跳转到domain.com上

    Visionaer Reply:

    @Terence, 请注意看最后,要想办法先不显示index.php,不过最好还是选择linux的主机比较好

  2. avatar Terence Says:

    在此之前我的网站已通过httpd.ini进行了伪静态,我在http://www.terence2008.info/archives/change-space.html上有写到过,你可以看到我的代码,请你看下为什么会出现我上面所说的情况?谢谢了!

  3. avatar 补水面霜 Says:

    说得很好,很详细,我网站的301做好了。

  4. avatar High Waist Shorts Says:

    Well, I have been reading your blog posts daily and the reason I come on your blog frequently is its compelling content

  5. avatar Laurence Jalkut Says:

    Very interesting post. Bookmarked.

  6. avatar hello Says:

这篇文章上的评论的 RSS feed TrackBack URL

留下评论