乱码链接怎么用
刚接手一个老站,后台一堆乱码链接,看着就头疼。
别慌,这玩意儿真没那么玄乎。
我昨天熬夜搞了三个小时,终于理顺了。
现在把血泪经验写下来,给你避坑。
先说啥是乱码链接。
就是URL里出现%xx或者中文直接显示成方块问号。
比如http://www.xxx.com/product/???
这种链接,百度蜘蛛根本爬不动。
用户点进去也是404。
这就是典型的乱码链接。
那乱码链接怎么用?
其实不是“用”,是“修”。
第一步,查编码。
大部分乱码是因为UTF-8和GBK混用。
你打开网页源码,看meta标签。
如果没有,或者写的是gb2312,那就对了。
问题出在这儿。
我那个站,数据库是UTF-8,服务器默认GBK。
一提交数据,全变乱码。
怎么解决?
统一编码。
把数据库、表、字段全改成UTF-8。
这一步最麻烦,得小心备份。
别直接改,先导出SQL文件。
用文本编辑器打开,搜索替换。
把gbk改成utf8。
然后重新导入。
这一步做完,大部分乱码没了。
但还有残留。
第二步,处理URL重写。
很多老站用伪静态。
规则里写了中文参数。
比如rewrite ^/news/([0-9]+).html$ /index.php?id=$1 last;
如果参数是中文,就会乱码。
解决办法,URL编码。
在生成链接的时候,用urlencode函数。
PHP里很简单。
echo urlencode("新闻标题");
这样生成的链接就是%E6%96%B0%E9%97%BB%E6%A0%87%E9%A2%98。
看起来像乱码,其实是安全的。
搜索引擎能识别。
用户也能访问。
这就是乱码链接怎么用的高级玩法。
把中文转成百分号编码。
别直接放中文在URL里。
除非你用的是H3协议,支持国际化域名。
但国内大部分服务器不支持。
还是稳妥点好。
第三步,检查301跳转。
如果旧链接是乱码,新链接是正常。
一定要做301。
不然权重全丢。
在.htaccess里加规则。
RewriteRule ^old-???\.html$ /new-url.html [R=301,L]
注意,问号在正则里是特殊字符。
得转义。
写成\?。
不然规则不生效。
我这就栽过跟头。
折腾半天,流量没回来。
后来才发现是正则写错了。
所以,乱码链接怎么用?
核心就三点。
统一编码,URL编码,301跳转。
这三步走完,90%的问题解决。
剩下的10%,是数据库里的脏数据。
手动改吧。
没捷径。
我那天改了五百多条记录。
手都酸了。
但看着后台数据正常,心里踏实。
别信那些一键修复工具。
大部分是噱头。
搞不好把数据库搞崩了。
得不偿失。
自己动手,丰衣足食。
虽然粗糙,但靠谱。
最后说个数据。
我优化完一周后,百度收录涨了30%。
自然流量涨了15%。
这说明啥?
搜索引擎喜欢干净的URL。
不喜欢乱码。
你给蜘蛛吃草料,它才给你送流量。
不然,它连门都不进。
所以,别嫌麻烦。
把乱码链接处理干净。
这是基本功。
也是良心活。
做网站,得对得起用户,也得对得起搜索引擎。
不然,白干。
希望这篇能帮到你。
有问题留言,我尽量回。
毕竟,谁还没踩过坑呢?
一起进步吧。
本文关键词:乱码链接怎么用