其实本来是不想写关于Wordpress的技术性文章的,毕竟我不算精通,仅仅是个人摸索,难能有什么值得拿出来分享的。

但是本次服务器搬家,网站重建之后,遇到了一个让我久久不能走出来的心理阴影:Wordpress的固定连接更改后,一直404错误。长达两天之久,导致失眠,甚至做梦都在想哪里设置错了。

应该可以自定义 /%postname% 的形式的,但是这样的话就是404页面,如果自定义为 /index.php/%postname% 就没有问题。要多一个index.php在里面才可以,并且我之前的搭建Wordpress的时候完全不存在这个问题。着了魔的我,从服务器端Web服务器Rewrite模块的配置到前端伪静态设置又重新彻底的做了一次。终于发现了问题所在。在这写这个也是为了让有同样困惑的小伙伴们不在因为此事失眠。

废话不再多说,上内容,

VPS环境是LAMP (Ubuntu 16.04 / Apache 2.4 / php 7.0)

依次执行了:

启用了Apache2的Rewrite模块。

因为我自己启用了Apache的配置文件 xubingyang.conf而不是默认的000-default.conf
所以我又:

把下面这段代码加入了我网站下的虚拟主机配置文件里:

重启了Apache,到这没有没有问题。

之后,在对应文件夹中写了 .htaccess 文件,内容为codex.ubuntu.org上一个帖子里抄来的,如下:

.htaccess文件放在了wordpress对应的/var/www/html/blog.xubingyang.com/public_html/cn/目录下,网上众多帖子都大概只写到了这里。

但是到这,我依然有404的问题。

苦思冥想了很久,不经意间,还是觉着应该是Rewrite规则有问题,终于意识到:

由于我的汉语博客根目录是blog.xubingyang.com/cn/,而虚拟主机的根目录实在blog.xubingyang.com/所以静态规则里:

这两句对应的改成:

就解决了。

之前从来没有想过多语言,把Wordpress放在子文件夹下的后与虚拟主机默认路径也会随之改变这个巨大的问题。有碰到此类问题解决不了的,还请也自查一下路径。可能是你和我一样之前没有考虑到的。

希望能帮到和我一样在这个问题上卡壳久久无法找到原因的小伙伴。