WordPress中文title的post打开提示404错误

此问题发生在我自己安装的wordpress上,添加的带有中文标题的blog都无法打开,提示Not Found错误,但是可以在主页上看到:
Not Found
Apologies, but the page you requested could not be found. Perhaps searching will help.

查看apache的access日志,里面显示:
172.25.20.134 - - [22/May/2015:16:01:15 +0800] "GET /wordpress/index.php/2015/05/22/%e6%b1%9f%e5%9f%8e%e5%ad%90-%e5%af%86%e5%b7%9e%e5%87%ba%e7%8c%8e/ HTTP/1.1" 404 13957
将这个post删除重新add一次,确认一下是中文字符的问题还是post内容的问题,如下,标题和内容都用中文:

江城子-密州出猎
老夫聊发少年狂,左牵黄,右擎苍,锦帽貂裘,千骑卷平冈。为报倾城随太守,亲射虎,看孙郎。
酒酣胸胆尚开张,鬓微霜,又何妨?持节云中,何日遣冯唐?会挽雕弓如满月,西北望,射天狼。

失败,打开还是提示Not Found,再换英文标题中文内容,如下:

Jiangchengzi-MiZhouChuLie
老夫聊发少年狂,左牵黄,右擎苍,锦帽貂裘,千骑卷平冈。为报倾城随太守,亲射虎,看孙郎。
酒酣胸胆尚开张,鬓微霜,又何妨?持节云中,何日遣冯唐?会挽雕弓如满月,西北望,射天狼。

这样就可以,能顺利打开post,那么问题到底出在哪里呢?再看apache的日志,正常时显示如下:
172.25.20.134 - - [22/May/2015:13:01:29 +0800] "GET /wordpress/index.php/2015/05/22/jiangchengzi-mizhouchulie/ HTTP/1.1" 200 20626

对比不正常时的日志,可以看到url地址中的中文被utf-8编码了,对照如下:

UTF8

default_charset no value no value那是不是PHP或者mysql的字符集设置的有问题,不支持UTF-8导致的呢?先看看PHP的字符设置到底是什么,通过phpinfo()看到的default_charset没有设置值

手动修改一下php.ini,将default charset改成utf-8试试

default_charset= "utf-8"

重启apache,访问还是不行,再来修改一下mysql的字符集,在/etc/my.ini中,在[mysql][client]项下面添加下面一句:

default-character-set=utf8

在[mysqld]项下添加下面一句:

character-set-server=utf8

然后重启mysql服务,查看当前字符集设置:

mysql> show variables like "%character%";
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /opt/mysql6_0_11/share/charsets/ |
+--------------------------+----------------------------------+

看起来是已经改过来了,再重启apache,打开中文名字的post还是提示Not found,这郁闷了,怎么办呢?在Dashboard扫了一圈,最后看到了Permalink Settings这一项,默认选择的是Custom Structure,我改为Default,然后再刷新页面看看,NND,竟然好了。再改换成其他任何一种都不行,那问题就出现在这个url上。毛病已经找到了,休息一下,再去看看有没有什么解决办法吧,至少可以把godaddy上的wordpress拷贝过来,对比一下,感叹啊,计算机的世界都是给聪明人玩的,像我这种榆木脑袋连基础的PHP都没有学会,也只能摸摸人家的大腿,混迹于此了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注