先看现象。文章地址用了中文标题,浏览器复制出来是一长串百分号编码,日志里看到的也是编码后的路径。
原因不止一个,得分开看。固定链接直接使用了中文标题。还有一种是不同系统对中文的编码方式不完全一致。
少数情况下是sitemap 里输出的是解码后的地址。
动手时先对比 sitemap 与实际请求的地址
grep -o '<loc>[^<]*' sitemap.xml | head -3
随后改成拼音或英文别名
wp post update 123 --post_name='seo-guide'
给旧地址做 301
rewrite ^/旧地址$ /seo-guide/ permanent;
中途换过一次思路,把范围缩到最小的那一层,反而快了。
中间停过一次,把已经改的东西回滚干净,再重新来一遍。
同样的操作我在测试机上先走了一遍,线上只做验证过的部分。
改完先别撤,确认这几项。地址变为可读的英文别名,分享和日志排查都更方便,收录不受影响。
补一句。中文 URL 本身能被正常抓取,但分享时容易被截断,统计和排查也更麻烦,能用英文别名就别用中文。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。