A-A+
WordPress中文链接无法打开/返回404错误的解决办法
根据网上找的资料给自己的wordpress站点搞了伪静态,并定义了固定连接的格式。参见我的上一篇博文【设置wordpress伪静态】。这时问题出现了,因为通过标签点击检索的url中带有中文目录导致404无法找到网页,找度娘一搜网上很多类似的案例,下面是我测试通过的解决方案:
首先找到wordpress的wp-includes目录下-》class-wp.php文件(注:我用的是3.8.1的版本,看网上其他人解决方案中写到3.1之前的版本是wp-include/classes.php文件),进行如下修改即可
1.将第153行的
$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : ''; 改为:
$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK') : '';
2. 将157行的
list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] ); 改为:
list( $req_uri ) = explode( '?', mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK') );
将修改好的代码上传到空间,大功告成!中文目录完美访问,包括带空格都木有问题了。