Pages

Sunday, 18 November 2012

WiN主机下,2种方法完美实现WordPress伪静态

自从使用WordPress以来,就一直使用WIN主机,但是推荐大家都使用Linux主机空间来搭建WordPress博客,其中缘由很多,只想说一句:如果你想充分用好WordPress,放弃你的WIN主机吧!但用了就得想办法解决,对吧!

如果你发现修改了固定连接/永久链接样式后,文章页面全部404,那就说明你的Win主机不支持伪静态,那你就要自己折腾了,不要完全相信你的主机商所谓的空间已经支持伪静态!

Win主机实现伪静态的方法,目前主要有两种,一种是通过httpd.ini文件实现,一种是通过404.php来实现。以下说的都是针对WordPress,其他程序不知是否可用。
方法一:通过httpd.ini文件实现伪静态

注:使用以下方法对Win空间下的wordpress设置伪静态前,请先询问主机商是否支持伪静态(IIS Rewrite 组件),这个是IIS6.0下最新的wordpress伪静态规则。

1.创建一个httpd.ini文件(创建一个txt文件,然后得命名为httpd,更改.txt的后缀为.ini),然后添加下面的代码:

    [ISAPI_Rewrite]  
    # 3600 = 1 hour  
    CacheClockRate 3600  
    RepeatLimit 32  
    # 中文tag解决
    RewriteRule /tag/(.*) /index\.php\?tag=$1
    RewriteRule /sitemap.xml /sitemap.xml [L]  
    RewriteRule /favicon.ico /favicon.ico [L]  
    # For file-based wordpress content (i.e. theme), admin, etc.  
    RewriteRule /wp-(.*) /wp-$1 [L]  
    # For normal wordpress content, via index.php  
    RewriteRule ^/$ /index.php [L]  
    RewriteRule /(.*) /index.php/$1 [L] 

2.保存后,把httpd.ini文件上传到网站根目录,然后登陆wordpress博客后台,在设置——固定链接中的自定义结构设置url形式即可。比如:/%post_id%.html
方法二:通过404.php文件实现伪静态

1.新建一个php文件,将以下代码内容添加进去,然后另存为404.php(注意保存的格式为UTF-8):

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

2.把404.php文件上传到网站根目录,然后到主机控制面板设置404自定义错误指向404.php

3.然后就可以登陆WP后台的“固定链接”中自定义链接了。比如:/%post_id%.html