不得不承认的是,一些大型网站对中文URL采取谨慎的态度,仅仅是在一些小的功能比如搜索或者tag标签上使用中文URL,这是可以理解的,因为大规模的更换URL结构会使网站降权甚至被K,而这些大型网站的权重在各个行业内基本上已经无法撼动了,短时间内中小型网站想要依靠优化技术对这些大网站进行超越是不可能完成的任务,所以这些大网站也就没有必要大规模更换URL。而对于小型网站或者是新站来说,使用中文URL绝对可以使自己的排名提高一个档次,完颜亮是怎么说的来着:“提兵百万西湖上,立马吴山第一峰!”
困扰中文URL使用者的一个问题就是乱码的问题,google以及一些国外的搜索引擎是可以识别国标码utf-8的中文URL,而对于gb2312的不识别,而百度在很长的一段时间内不识别utf-8的中文URL,但是在今年年初就已经支持了utf-8的中文地址,所以现在的解决方法就是把你的网站编码换成 utf-8,然后统一用urlencode把中文地址格式化成三字节字符串,这样所有搜索引擎都可以识别,但是,有人担心万一百度改回原来那种只识别gb2312编码的方式怎么办,因为百度自身的编码就是gb2312的,其实不用担心,这个完全可以用技术解决,也就是判断如果是utf-8的编码,可以强行转换成gb2312的编码,这样就可以保证无论是gb2312还是utf-8,百度都可以识别了,其具体方法如下:
$url = 'http://www.xiaohao.net/中文/中华文化';
echo urlencode(mb_convert_encoding($url, 'utf-8','gb2312', ))."\n";
echo rawurlencode(mb_convert_encoding($url, 'utf-8','gb2312'))."\n";
运行会发现编码已经转换了,如果你不喜欢用mb_convert_encoding,也可以用iconv函数,效率会更高。
谨以此文为祖国庆生,愿伟大祖国永远繁荣富强。