Wordpress在Windows IIS主机上如何实现rewrite
Posted by adminDec 3
wp-url-rewriting.dll
下载地址:http://code.google.com/p/wp-url-rewriting-on-iis/downloads/list
这是位好心的牛人专门为工作于iiS中的WP写的ISAPI rewrite组件,用它您根本就不用写rewrite规则,您只需要将其加载到您的ISAPI中,然后进wp后台定义自己的permalinks即可。假如你用的是虚拟主机的话,您可以联系您的空间商让其为您添加上这个组件。从此您的WP也可以完美rewrite了。
注意:本文还没有完呢!
当我们定义好permalinks后,可能您会发现,我们点击中文标量的文章链接时说找不到网址。
例:http://www.lixiaopeng.org/tag/%e7%99%be%e5%ba%a6/
这是因为:WP的编码为utf-8,而这篇文章的URL中Slug(上链接红色部分)编码为gbk。然后WP取得文章Slug后,通过它来查找文章就会找不到!因为编码不同呀。
更改方法:
注意单引号替换成正确的.WORDPRESS在我发的时候自动替换成了全角.
wp-include/classes.php中(44-50行)
if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = $_SERVER['PATH_INFO'];
else
$pathinfo = '';
$pathinfo_array = explode('?', $pathinfo);
$pathinfo = str_replace("%", "%25″, $pathinfo_array[0]);
$req_uri = $_SERVER['REQUEST_URI'];
替换为下(转换$_SERVER['PATH_INFO']和$_SERVER['REQUEST_URI']的编码):
if ( isset($_SERVER['PATH_INFO']) )
$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'utf-8′, 'GBK');
else
$pathinfo = ";
$pathinfo_array = explode('?', $pathinfo);
$pathinfo = str_replace("%", "%25″, $pathinfo_array[0]);
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'utf-8′, 'GBK');
这个操作的意思就是:将Slug的编码由GBK转换为utf-8(您也可以用iconv,或是其它的函数来代替mb_convert_encoding)。










































No comments
You must be logged in to post a comment.