mark一下!URL含有中文字rewrite
- 2012年03月16日
由于小肥在发布博文的时候喜欢方便就会带上了中文字的链接,以前在lnmp的平台下没出现404找不到网页的问题,网上百度了很多,有多跳转404页面,有的安装插件,就没能从根本上解决这个问题,其实问题出现在wordpress自身程序上,wordpress是utf-8编码的,而rewrite规则是根据GB-2312编码的,所以出现问题在所难免,在这里我们只要稍微修改一下程序有关文件即可,具体方法如下:
只要去找到 wp-includes\classes.php文件(注意,最新版的Wordpress,这个文件已经改名为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”);
$req_uri_array = explode(‘?’, $req_uri);
大功告成。
更新:分类可以用中文,但是分类的别名必须是字母,否则会报错!

