class-wp.php文件
首先找到出现404错误的页面,确定是所有tag出现问题还是只有中文tag出现问题
第二步,根据出现的404页面可以发现只有中文标签会出现乱码现象,于是可以通过转换编码的方法来进行解决,主要原理是,IIS会将PathInfo中的UTF-8转换成GBK,QueryString中就不会转换,故而为了使用Permalink。
第三步,在网站的根目录下找到class-wp.php这个文件,搜索到下面这段代码: 1.if ( isset($_SERVER['PATH_INFO']) ) 2.$pathinfo = $_SERVER['PATH_INFO']; 3.else 4.$pathinfo = ''; 5.$pathinfo_array = explode('?', $pathinfo); 6.$pathinfo = str_replace('%', '%25', $pathinfo_array[0]); 7.$req_uri = $_SERVER['REQUEST_URI'];
第四步,把上面这段代码修改为下面这段代码 1.if ( isset($_SERVER['PATH_INFO']) ) 2.$pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK'); 3.else 4.$pathinfo = ''; 5.$pathinfo_array = explode('?', $pathinfo); 6.$pathinfo = str_replace('%', '%25', $pathinfo_array[0]); 7.$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK');
最后,测试一下网页上原来的中文Tag是否还出现URL乱码。
这种方法只适合于win主机,必须是Windows下的IIS主机才有效。