wordpress静态化设置:windows主机(服务器)伪静态去除index.php方法

一开始一时冲动,加之不像购买国外完美支持wordpress的linux主机Apache平台要用paypal付款支付那么麻烦,当初还是选择了入门级的windows服务器iis平台环境主机搭建了这个博客,并且起了一个非常“浪漫”的博客名字,不睡则以,一睡就是一觉“睡到自然醒blog”。于是,俺也走上了独立个人博客之旅。

搭建好了博客,其实也已经考虑好了以后换其它主机的退路。所以还是很保守的暂时选择了用“域名/index.php/post_id.html”,比如http://www.dreamfreeblog.com/261.html作为博客的永久链接地址(Permalinks)。

为了去掉wordpress博客文章连接地址中嵌入的index.php格式,在网上一直苦苦搜索,知道有个方法可以用ISAPI_Rewrite组件实现类似linux主机apache环境的mod_rewrite的url rewrite地址重写功能,但必须要拥有服务器上运行该组件的权限,作罢。以后也就没进一步尝试其它方法。先有个伪静态地址格式也不错了。

前天尝试用英文关键词搜索,果然,对于一个代码盲来说。依赖一定的网络搜索和解决问题的能力。终于找到了win iis虚拟主机不需任何wordpress插件,不需要第三方组件完美的wordpress伪静态设置方法。当然,前提条件是服务器提供商的控制面板有自定义404错误页面的选项。

你只需创建一个404错误页面,并且写入下列4行代码即可简单优雅的实现无插件完美支持windows iis主机的永久固定链接的伪静态化地址格式。去掉网页地址中的index.php!

<?php
$qs = $_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ':80')+3);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
?>

这样即可固定REQUEST_URI和PATH_INFO参量并且包括进去index.php,剩下的将交给wordpress完成任务(说实话,这参数定义代码偶也不清楚,依葫芦画瓢即可)。

具体设置步骤:
1.新建一个记事本,在里面写入上面代码,保存,连同txt格式重新命名为wp-404-handler.php。
2.设置404自定义错误指向wp-404-handler.php,一般来说,绝大多数服务器控制面板均提供该选项。
3.进入wordpress管理后台,设置(Options)-永久链接(Permalinks),你就当自己的主机是linux主机使好了,任意、随便设置自己喜欢的伪静态地址格式及静态地址后缀。
4.Enjoy! :lol:

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

不管怎样,你成功去掉了index.php!最后感谢英文作者einar 提供的天才设置方法!

转载请保留以下信息:
文章来源:睡到自然醒blog[http://www.dreamfreeblog.com]
文章链接地址: http://www.dreamfreeblog.com/wordpress-permalink-url-rewrite-windows-iis-261.html

收藏本文到网摘: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
1 Star2 Stars3 Stars4 Stars5 Stars (我要投票)
Loading ... Loading ...

  • #1
    Posted by Yacca on 08月 20th, 2008 at 9:19 am

    厄...早点看到这个也许我就不用换主机了...

    [回复]

    Wavatar
  • #2
    Posted by Lucifr on 08月 21st, 2008 at 12:09 am

    我的页面速度也很慢,在考虑要不要静态一下…… :em68:

    [回复]

    Wavatar
  • #3
    Posted by Peltason on 09月 6th, 2008 at 9:31 am

    这样做是有性能问题的,因为你是利用404错误页来进行跳转,相当于多了“页面找不到跳转到错误页”这一步骤,而且这样做的话用wp-cache这样的插件会不会有问题,我还没测试过,不过对于访问量较小的网站问题不大

    [回复]

    dreamfree reply on 2008-09-06 8:00 pm:

    这个原作者说对搜索引擎没影响,具体会不会多了404跳转而产生负面影响不是很清楚,但根据我博客的情况来看,好像不存在这种担忧。其实自从我这样修改链接去掉index.php,访问量是显著上升的,可能是链接层次在根目录,呵呵。

    [回复]

    Wavatar
  • #4
    Posted by 静水深流 on 09月 8th, 2008 at 6:50 am

    :oops: 对啊,早点看我就不用换主机了。。。

    [回复]

    Wavatar
  • #5

    [...] 当然,如果你的网站是新网站,建立网站的初期将博客动态链接设置成为伪静态的静态地址,最好设置成这种包含关键词的永久链接是值得推荐的。但如果非得去改变固定链接地址的格式,也只能算是一种冒险的测试了。 [...]

    Wavatar
  • #6
    Posted by jok on 09月 19th, 2008 at 4:23 am

    有时间IIS搭个测试一下 :mrgreen:

    [回复]

    dreamfree reply on 2008-09-20 7:59 am:

    呵呵,也不用这么折腾吧,看来是有自己服务器的人。这个方法可行的,我已经成功实现去除index.php :grin:

    [回复]

    Wavatar
  • #7
    Posted by 搞定窝棚的永久链接 | 窝棚-WPCMS on 09月 22nd, 2008 at 4:26 pm

    [...] 自从在好友罗乔的服务器上搬出来后,用上了上海移动机房的双线服务器,但由于是windows IIS服务器,wordpress永久连接器。昨天听睡觉睡到自然醒的高同学说,有一个很不错的方法,回来后找了找他的文章:windows iis主机(服务器)永久链接生成伪静态地址,发现好像比其它介绍的要简单的多的多。就联系服务器提供商,想不到不到几分钟时间就搞定了。开心一下~~ Rate this topic: (No Ratings Yet)  Loading ... Tagged with: [ 窝棚, Permalinks, windows iis, WordPress ] You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site. [...]

    Wavatar
  • #8
    Posted by 窝棚~alanjiang on 09月 22nd, 2008 at 7:45 pm

    虽然方法不错,但会自动生成静态文件。这个倒是挺怕的。~~

    [回复]

    Wavatar
  • #9
    Posted by dreamfree on 09月 22nd, 2008 at 10:03 pm

    呵呵,这个方法去掉index.php肯定没问题的,你的问题真的很奇怪呀,好好检查下吧。

    [回复]

    Wavatar
  • #10

    [...] 从wordcamp shanghai回来后,我就决定重新整理一下“窝棚”,先是从听高同学的,整理一下永久链接的事。 [...]

    Wavatar
  • #11

    [...] 感谢为我提供空间的xx服务器提供商,虽然是windows iis主机,但在博客发展初期阶段最起码让我从代码盲变成了初级代码模仿修改者,并最终克服了除win主机运行PHP速度的其它所有缺陷,比如成功实现了win主机永久连接的完美伪静态; [...]

    Wavatar
  • #12

    [...] http://www.dreamfreeblog.com/wordpress-permalink-url-rewrite-windows-iis-261.html 分 类:WordPress | 发表评论 | trackback [...]

    Wavatar
  • #13

    [...] iis主机出现的错误,很可能是和我以前为了去掉链接地址中的index.php设置win主机静态链接的方法不兼容,因为修改链接之前没此类错误。当然wordpress [...]

    Wavatar
  • #14

    [...] 7. Redirection 301重定向插件,避免读者访问或搜索引擎抓取不存在日志出现404错误。如果转移旧网站文章或调整链接结构,一款重定向插件将十分便捷。(其实重定向插件有好几个,我以前修改永久链接时用的是Dean's Permalinks Migration重定向插件,支持国产插件!呵呵。) [...]

    Wavatar
  • #15
    Posted by 深红色 » 更改了永久链接方式 on 11月 26th, 2008 at 11:45 pm

    [...]     具体的请查看这篇帖子,我也在这里谢过了。     http://www.dreamfreeblog.com/wordpress-permalink-url-rewrite-windows-iis-261.html     [...]

    Wavatar
  • #16
    Posted by 51blog on 11月 28th, 2008 at 10:40 am

    您好,先生,我想问下,为什么我设置指向的404.php页面竟然直接把内容像文本文件一样全部显示了出来,而不是解释执行,怎么办啊?
    多谢您。

    [回复]

    dreamfree reply on 2008-11-30 12:00 am:

    你说的像文本文件一样全部显示了出来是不是生成了静态页面文件,
    可能因为你启用了缓存插件,check :em43:

    [回复]

    51Blog reply on 2008-11-30 10:34 am:

    现在解决了,不过不是通过404转向实现的。
    那个像文本文件一样显示了出来还是没有找到原因。。
    我把生成静态页面的插件都删除了也还是不行,呵呵。。不过谢谢你了啊。先生。。

    [回复]

    Wavatar
  • #17
    Posted by Ning on 12月 2nd, 2008 at 9:21 pm

    请教个问题,我照介绍里说的步骤让供应商帮我把连接指定到了特定文件,但好像还是不行。不知道是不是我最后一步做错了,自己在option设定的那步,能不能写给我看看您的格式是如何的?是不是在自定义那栏写?谢谢。

    [回复]

    Wavatar
  • #18
    Posted by dreamfree on 12月 2nd, 2008 at 11:06 pm

    我的是/%postname%-%post_id%.html啊,404文件你没弄错吧,放在根目下,404错误指向该文件即可。

    [回复]

    Wavatar
Share your opinion! Post your thoughts.