我在Google网站管理员上有很多未关注的网页。我检查它们是因为很多网址都像http://www.mysite.net/2013/06/burn-notice-7%C3%9702-sub-espanol-online.html 正确的网址必须是http://www.mysite.net/2013/06/burn-notice-7x02-sub-espanol-online.html
我尝试发布一个很多“x”的标题,并且当我发布一个像这个标题的新系列剧集时,唯一那个奇怪的%C3%97:Burn Notice 7x02SubEspañolOnline。当x介于数字之间时出现%C3%97并且使我的帖子重复。
所以我尝试修改从latin1_swedish_ci到utf8_general_ci的数据库排序规则,但仍然是同样的事情。我也检查了我的wp-config.php并定义了('DB_CHARSET','utf8');
请,有些机构知道解决所有这些情况的任何好方法吗?如果我找到一个需要更新旧网址的解决方案,那么数据库就相当大了。
先谢谢你
答案 0 :(得分:0)
您说Google正在使用的网址:
http://www.mysite.net/2013/06/burn-notice-7%C3%9702-sub-espanol-online.html
与网址几乎相同:
http://www.mysite.net/2013/06/burn-notice-7x02-sub-espanol-online.html
因为百分比编码的字符实际上是repreesent Unicode Character 'MULTIPLICATION SIGN',而它是'×'而不是'x'。谷歌只是使用百分比编码版本是安全的。这意味着您的数据库可能没问题,因为它将URL显示为有效的UTF8。
问题可能在于您如何解释请求的URL并尝试将其与数据库匹配。 PHP应该已经将百分比编码值解码为'×',因此:
有些东西破坏了字符串(例如调用非多字节安全函数,如strtolower()而不是mb_strtolower())。
您的PHP代码以UTF8以外的字符集连接到数据库,请检查您的my.cnf文件在客户端部分中是否包含'default-character-set = utf8'。
< / LI>还是有其他一些问题。该URL看起来确实有效。