Windows主机wordpress永久链接去index.php

2008年10月09日  星期四  Hypo @ 22:52:02     27,450 views     

WordPress在windows主机下,设置永久链接为非默认的时候,会包含首页文件index.php,不像在linux系统或unix系统下设置的自由。带着个index.php总感觉特别别扭。睡到自然醒blog给我们介绍了一个很好的方法,经过Hypo的验证,感觉非常好,和在linux系统主机一样方便,不需要任何插件或第三方插件。

但是需要一个前提条件:服务器/虚拟主机提供商的控制面板有自定义404错误页面的选项。

具体设置步骤:

1.新建一个记事本,写入代码(注意:所有符号均为英文状态下符号):
<?php
$ori_qs = $_SERVER['QUERY_STRING'];
$pattern = '/[^;]+;[^:]+:\/\/[^\/]+(\/[^\?]*)(?:\?(.*))?/i';
preg_match($pattern, $ori_qs, $matches);
$_SERVER['PATH_INFO']    = $matches[1] . '?' . $matches[2];
$_SERVER['REQUEST_URI']  = $_SERVER['PATH_INFO'];
$query_args              = explode('&', $matches[2]);
unset($_GET);
foreach ($query_args as $arg)
{
    $the_arg = explode('=', $arg);
    $_GET[$the_arg[0]] = $the_arg[1];
}
include('index.php');
?>

2.保存上面文件,并将txt格式重新命名为wp-404-handler.php

3.在空间的控制面板里设置404自定义错误指向wp-404-handler.php,一般来说,绝大多数服务器控制面板均提供该选项。

4.进入wordpress管理后台,设置(Options)-永久链接(Permalinks),你就当自己的主机是linux主机使好了,任意、随便设置自己喜欢的伪静态地址格式及静态地址后缀。

5.OK,Enjoy!

推荐链接地址层次不要太深,并且伪静态化地址加上html/htm,不过也有人推荐不要加上伪静态后缀,因为那样搜索引擎可能会认为那种地址是一个分类目录,而不是一个具体的网页,从而获得更高的搜索排名权重,现在wordpress个人博客也比较流行那种伪静态格式。具体怎么设置,看个人喜好了。

(感谢Chris.Ro提供更好代码,已经更改本文的代码,虽然我不知道代码什么意思,有更好的当然要用了。)

转载请注明,转自:RenHaibo.com
本文链接地址:http://www.renhaibo.com/archives/14.html


分 类:WordPress | 发表评论 | trackback
标 签:
上一篇:
下一篇:
  1. 本文有21条评论

  2. 睡到自然醒blog   发表于 2008年10月10日 00时13分12秒

    呵呵,恭喜设置成功!

    →回复此留言

  3. 睡到自然醒blog   发表于 2008年10月10日 00时13分39秒

    还是建议你去掉archives,不过不去问题也不大啦,个人喜好吧,呵呵。

    →回复此留言

  4. DiDi   发表于 2008年10月10日 08时05分55秒

    看到好几个朋友的博客都静态化了……
    不明白~是不是静态化更利于搜索引擎的抓取~?

    →回复此留言

  5. Kenny   发表于 2008年10月11日 01时15分47秒

    我的永久链接和你相同:)

    →回复此留言

  6. perdie   发表于 2008年10月11日 10时16分31秒

    伪静态比较容易!我的就是那样做的!

    →回复此留言

  7. Chris.Ro   发表于 2008年10月11日 15时35分03秒

    怎么说呢?这个类似的博文我已经看过很多次。而我也一次次的提醒他们不应该这么做。
    因为这样做无非是为了SEO,但是如果使用这个方法搜索引擎第会直接被404拦截,因为他不想我们浏览器可以看到内容,他看到的第一个内容是一个错误。
    所以我首先建议在头部加入 header(“HTTP/1.1 200 OK“); 一个成功信息,否则可以所有搜索引擎都不收录。其次还有一个问题。但是我不可能在这么小的框写出所有内容,因为代码就超过十行。所以我就给个链接,我写的一个日志:http://www.chrisoft.cn/2008/09/15/wordpress-permalink-for-iis.html

    →回复此留言

  8. maypu   发表于 2008年11月3日 15时24分53秒

    说的很好啊

    →回复此留言

  9. 健康部落   发表于 2008年11月15日 17时24分36秒

    博主,非常感谢,终于解决了一个难题!

    →回复此留言

  10. 海水焰   发表于 2008年11月21日 10时49分31秒

    以后MHT此文章

    →回复此留言

  11. 电脑技术   发表于 2008年11月27日 23时10分42秒

    看过了,哈哈,研究研究!

    →回复此留言

  12. 51blog   发表于 2008年11月28日 11时40分53秒

    我想问一下,为什么我按照您的方法设置之后,系统跳转到404.php页面时是直接把内容显示出来的呢?
    为什么没有解释执行呢?
    多谢。

    →回复此留言

  13. Hypo   发表于 2008年11月28日 13时07分03秒

    @51blog 您好,是这个博客吗?http://51blog.co.cc/
    您的404好像没有设置成功啊

    →回复此留言

  14. 尚品元素   发表于 2009年9月28日 15时54分46秒

    博主关于这个问题我有一些疑惑,能否进行一下详谈?谢谢!

    →回复此留言

     Hypo  回复于  09月 28th, 2009 @ 17:02:43

    @尚品元素, 你好,有什么问题请只管说,也可以QQ聊,见侧栏下部

    →回复此留言

  15. 老刁   发表于 2011年9月7日 23时05分05秒

    还是选择linux主机吧!就不用这么麻烦了

    →回复此留言

  16. 小陈   发表于 2011年9月8日 16时29分40秒

    楼主,我还是不会,搞了一下午,可否求救925821479QQ

    →回复此留言

  17. 白斑病医院   发表于 2011年12月7日 14时42分25秒

    仔细读过博主的文章,觉得非常值得学习!

    →回复此留言

  18. kids   发表于 2012年12月20日 18时50分38秒

    我怎么弄都不行啊 win主机二级目录下 按照你的方法 自定义固定连接就出错 郁闷死了 网上的都是一样的 到底怎么回事

    →回复此留言

  19. kids   发表于 2012年12月20日 18时52分51秒

    忘记说了 我的是VPS

    →回复此留言

     Hypo  回复于  01月 2nd, 2013 @ 14:15:50

    @kids, vps安装软件就可以实现了,不用特殊设置。具体请参考http://www.iis.net/downloads/microsoft/url-rewrite

    →回复此留言

/* This is a loop for printing trackbacks if there are any */
  1. 3 Trackback(s)

  2. 2010年03月11日 22时12分15秒: 不知为不知 » Windows主机设置WordPress固定链接的问题