昨天为自己的博客弄了伪静态,可是当时没有仔细检查,到了今天才发现不支持中文,博客中带有中文的连接都转到404去了,在网上找了一下,发现了好多方法,就整了个简单的,发现一次就OK了。 下面是我自己的伪静态的加中文支持的办法,我的博客目前是最新的3.2.1版本,主机是Windows+IIS。 先是弄伪静态,这个是需要你的空间支持的,不知道的话可以去问你的空间提供商。首先到后台的设置修改你的“固定链接”。
自定义结构可以用你自己喜欢的,比如可以只用用“/%post_id%.html”,这样的访问地址就会是“http://cmcong.tk/id.html”;当然你也可以用“/%post_id%”,这样的访问地址就会是“http://cmcong.tk/id/”等等,后缀名“html”也可以随你喜欢修,比如cn、org、88、cctv等等,官方提供了如下一些参数。
%year% 年份 %monthnum% 月份 %day% 日期 %hour% 小时 %minute% 分钟 %second% 秒 %postname% 文章名。如文章名是“This Is A Great Post!”那么“this-is-a-great-post”就是url中的文章名。 %post_id% 文章的ID %category% 目录 %author% 作者
修改好你需要的伪静态后,就要保存更改。然后要为博客的根目录添加一个“httpd.ini”文件,文件创建方法为新建一记事本,另存为httpd.ini,代码如下。
[ISAPI_Rewrite] # 3600 = 1 hour CacheClockRate 3600 RepeatLimit 32 # Protect httpd.ini and httpd.parse.errors files # from accessing through HTTP # Rules to ensure that normal content gets through RewriteRule /software-files/(.*) /software-files/$1 [L] RewriteRule /images/(.*) /images/$1 [L] 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]
这样就可以支持伪静态了,但是还不支持中午,需要支持中文还需要修改一个文件,“wp-include”目录下的“class-wp.php”文件。
第一步:找到
$pathinfo = $_SERVER['PATH_INFO'];
修改为:
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK');
第二步:找到
$req_uri = $_SERVER['REQUEST_URI'];
修改为:
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK');
就这样,自己可以支持中文的伪静态状况了,TAG标签页等都可以打开了的。
注:如果你的博客目录或根目录装有其他程序,以上这种办法的“httpd.ini”会导致把你的访问都转会博客的首页,从而导致你不能访问和你博客同一目录或根目录的程序,如果有谁有更好的方法,麻烦告知一下。

