WordPress配置固定链接中文URL出现404问题的正确解决方法

WordPress配置固定链接中文URL出现404问题的正确解决方法

刚刚搭建了WordPress博客,尝试发一篇文章,发布后出现了404错误,说找不到页面。
这是怎么回事儿呢?

经过一番分析后发现,原来是我的Apache配置没有开启伪静态(动态页面伪装为静态页面功能)。

解决方法

先来说一下具体的步骤如下:

  1. 保证Apache支持.htaccess文件(开启伪静态)
  2. 配置WordPress的固定链接

配置Apache2开启伪静态

修改文件httpd.conf

# 1. 开启rewrite_module, 去掉前面的井号注释

LoadModule rewrite_module modules/mod_rewrite.so

# 2. 找到网站工作目录下的`AllowOverride`

...

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    ...


##修改为

AllowOverride All

## 这样就支持.htaccess文件了

重启Apache服务apachectl restart(具体命令根据自己系统定),只有重启后修改的配置才能生效的。

配置WordPress的固定链接

基本上到了这里就很简单了

操作步骤:

登录管理员页面 => 设置 => 固定链接 => 自定义结构

具体的固定链接配置规则根据个人来定了,我这里选择的是 /%category%/%postname%.html保存更改 (会自动在根目录下生成.htaccess文件,并不需要手动写入)。

接下来就可以测试下你的成果了。

后话

关于固定链接使用中文我也看了很多帖子,说的方法很多,但是在我实际验证后并不能解决这个问题,也许在很老的版本或者其他的系统(Windows服务器)中适用吧。

比如修改WordPress的源代码文件wp-includes/class-wp.php,增加mb_convert_encoding字符集转换函数,这个在Linux平台上实测也是没有必要的。
再比如手动增加.htaccess文件,此文件在配置固定链接时就会自动生成,不需要手工写入。
还有的方法就是绕过中文URL了,比如使用插件转换成拼音,或者不适用postname中文标题而换成post_id ,这些的前提都是你的服务端软件(Apache/Nginx)配置了支持伪静态才可以,
在不支持伪静态的情况下只能配置静态链接为朴素形式,如果验证的现象跟这个一样,那就乖乖的修改你的服务器软件配置支持伪静态.htaccess文件吧。

转载本文时请注明出处及本文链接地址WordPress配置固定链接中文URL出现404问题的正确解决方法

发表评论

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