本博客系宁波SEO联盟资深成员 seolm.org
« »
2010年02月28日技术文章

4,575 views

wordpress伪静态后包含中文词的url显示找不到内容(解决方法)

用wordpress伪静态规则后,我们点击中文标量的文章链接时说找不到网址。

这是因为:WP的编码为utf-8,而URL中Slug编码为gbk。然后WP取得文章Slug后,通过它来查找文章就会找不到!因为编码不同呀。修改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)。

本博客即为演示。

日志信息 »

该日志于2010-02-28 16:25由 王今古 发表在技术文章分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

相关日志 »

随机日志

没有评论

发表评论 »

*

这里显示评论者的最新博文~
返回顶部