WordPress博客修改永久链接这件小事

最近抽空着手建立本站的备份,想放在一个VPS上,这样即便 WordPress.com 以后万一遭粉圈小青年举报而被墙,自己的博客也不至受什么影响。真动手了以后发现还是颇有一些阻碍的,自己网络知识太缺乏,遇到问题唯一的办法就是上网查攻略。大部分问题都能解决,唯有一件小事里的一个小步骤是靠自己突发奇想解决的,就在这里写一笔。

WordPress建站确实已经到了一个近乎傻瓜的地步——如果你的VPS服务商直接提供One-Click Apps的话的确如此。但VPS服务商也有办不到的事情,例如给你的博客设置SSL,即便你用Let’s Encrypt家的免费证书,也免不了要跑到命令行里折腾一番。这倒没什么,上网查指南,总有人曾经十分耐心地把每个命令都告诉你。然而我在另一件小事上犯了难,那就是给文章设置永久链接。

WordPress的默认文章链接,想必各位建站人员都发现了,是:

http://example.com/?p=100

这个链接是不是很难看,我们暂且不论,但一个致命的问题是它使用了一个?开头的域名后缀,这种链接格式在一些自动识别的场合可能会给截掉,导致URL无法指向需要的文章。我们肯定要换掉它。

WordPress知道你有这个需求。你在Dashboard – Setting – Permalink里很容易就能找到修改永久链接命名规则的地方。不过,恐怕也有的读者跟我一样,修改了永久链接规则以后发现主页所有文章以新链接访问的时候都会显示404错误,显然没有成功地实现新旧链接的转换。

WordPress官方说明文档中包含了对这一问题的解答,遗憾的是,在我这里它并不起作用。我后来找到了一篇台湾网友撰写的网志《「教學」解決 WordPress 固定網址設定 404 錯誤》,照着其中的命令来改,也未见成效。简体中文世界里的讨论大部分不出上述两篇文献的范畴,只得作罢。

今天下午和Xuan Wang讨论起这件事来,Xuan发给我了很多信息,我觉得朋友这么热心,自己什么都不做也不好。打起精神来开始尝试继续解决。从Xuan发给我的信息来判断,上述台湾朋友的网志应该已经包含了这一问题解决所需的全部信息。检查.htaccess文件内容,看到各种应该写入的东西都已经写入了,可知WordPress能够正常管理这个文件。看来问题可能还是出在Apache主要设定文件上。

突发奇想,也许有个什么文件覆盖了它的设置,于是查看了Apache设定文件所在目录的全部文件:

ls /etc/apache2/sites-available/

果然,这里不只有一个conf文件:

000-default.conf  default-ssl.conf  wordpress.conf  wordpress-le-ssl.conf

我继续修改了 wordpress.conf这个文件,在文件开头添加了以下内容:

<Directory "/var/www/wordpress">
    Options Indexes FollowSymLinks
    AllowOverride all
    Require all granted
</Directory>

这段代码来自于CSDN上网友wjycgl的文章:《解决wordpress固定链接设置,出现404错误无法访问的问题》。修改后,保存退出,重启Apache服务。

然后发现网站正常了,URL能正常跳转到对应网页。

这个事情很小,可能就是我自己不会改而已,纯属网站搭建过程中的花絮。

Leave a comment

Your email address will not be published. Required fields are marked *