Nginx+WordPress固定链接404解决方法

我根据 seoimo 和 jwcyber 的教程在vps上搭建了 wordpress,后者的教程使用了 Nginx 这个服务器。在搭建完博客之后,我在后台把固定链接修改为 文章名 imzm.im/post-name ,却在访问博客内任何链接的时候遇到了404,下方写着 Nginx。我随着这个线索查询了google,大部分的解决方案都是在 nginx.conf 添加一段代码:

location / {

root /www/data/xxx;

index  index.php index.html index.htm;

if (-f $request_filename/index.html){

rewrite (.*) $1/index.html break;

}

if (-f $request_filename/index.php){

rewrite (.*) $1/index.php;

}

if (!-f $request_filename){

rewrite (.*) /index.php;

}

我用 find / -name ‘nginx.conf’ 查找了所有的 nginx.conf 并插入了如上代码,重启lnmp/nginx,无法解决上述问题。这问题让我头疼了两天,差一点打算换成Apache,最后我找到了这篇文章,一个非常简单的方法就能解决了:

  1. /root/lnmp1.4/conf/rewrite/wordpress.conf 这个rewrite文件可以让wp重定向,把它复制到 /usr/local/nginx/conf 这个文件夹;
  2. 然后在 /usr/local/nginx/conf/vhost/domainname 下的 domain.conf 中添加 include wordpress.conf; 这条语句;
  3. 重启nginx或lnmp,便可以使用wordpress的固定链接了。

Nginx和Apache各有各的好处,前者轻量级,在服务器内存不充裕的时候使用Nginx能减轻压力;而后者赫赫有名,强大的rewrite、稳定且模块更多是Apache的优点。如果从一个流量很小的小博客的角度来看的话,其实Apache会更加适合。但是尝鲜也何尝不有趣呢?

作者: 陈仓颉

以有涯随无涯

《Nginx+WordPress固定链接404解决方法》有19个想法

  1. 感谢,看到自己的pingback,但是我的小站最近被自己折腾坏了,数据库没法恢复所以404了。
    补充一丢丢,如果开了SSL的话,include wordpress.conf 这行也要加在有SSL配置的那个block里(就是listen 443 …开头的那个block)。

  2. 我从虚拟主机转到VPS也遇到过这个问题,折腾了半天,后来不经意发现我用的VPS管理面板里有个伪静态选项,选择wordpress就自动写好了配置,完事儿。

    1. 这个vps是vultr的,洛杉矶机房是5刀每个月,日本是2.5刀,不过数量很少。你可以去参考一下

      1. 目前在用的是哪个vps? Seoimo的文章里有提到关于wordpress优化的技巧,可以去看看

      2. 接下来会写写关于wordpress框架内的优化加速(vps建站那篇是基于服务器的),包括数据减少查询,静态缓存,以及多文字多图片的长文优化,实现文章再多文字再多图片也能轻松实现秒开,基本可以告别cdn。

发表回复

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