岁月已逝,记忆尚存。用键盘记录记忆,留住记忆~

WordPress 设置静态后导致中文标签无法访问的解决方法

2009-11-28

      导致这个问题的原因,网上有资料显示,wordpress设置伪静态后导致对$_SERVER['PATH_INFO']和$_SERVER['REQUEST_URI']的取值取到的是GBK编码的url,但是WordPresss是用UTF-8编码的,所以中文就转成了乱码,再转换成SQL去数据库查询的时候就无法找到记录了。

      解决方法,打开wp-includes\classes.php文件修改下面代码:

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'];

      为:

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”);

      OK!问题成功解决!

作者:www.tahaoma.net | 分类目录:wordpress整理 | 标签:

发表评论

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>