分享

怎样解决WordPress中文Tag抓取404错误

 昵称10259736 2012-06-22

这几天通过Google网站管理员工具看了一下这个博客的抓取情况,不看不知道,一看吓一跳。就那么几天就出现200多个404错误页面,点进去一看,都是因为中文标签的问题。

中文标签不能正常显示,中文Tag在URL中显示乱码。我以为仅仅是网站抓取的错误,然而我在首页点下中文tag,点进去都是提示404错误,真无语。

于是就去网上查了下资料,可以通过以下方式来解决:(本人亲测可用)

主要是通过转换编码的方法,它的主要原理是,IIS会将PathInfo中的UTF-8转换成GBK,而QueryString中就不会转换,故而为了使用Permalink,采用以下方法:

以前的wordpress版本是修改网站根目录的wp-includes\classes.php文件,但是3.1版本没这个文件了,新版本的wp文件中名称被改为class-wp.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");

不过这种方式有个局限就是只对Windows主机、且必须是Windows下的IIS主机有效。因为本人的主机就是windows主机,所以解决了。

以上就是怎样解决WordPress中文Tag抓取404错误 的方法,如果你有什么好的方法,欢迎来我的个人博客,破折君博客:http://www.交流分享!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多