陈仓颉

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. Rick说道:

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

  2. 桃花懂了说道:

    好文章!

  3. 网友说道:

    有用,谢谢。

  4. Princerin说道:

    看了数篇文章,只有这篇简洁明快的解决了我的问题,感谢。

  5. 陈医生说道:

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

  6. Lucifer说道:

    折腾了3小时,直到看到你的文章,感谢,ctrl+D了

  7. 姜辰说道:

    nginx很不错,在128M内存的服务器依然可以跑起来网站,而apache。。。

  8. Life in Faw说道:

    VPS 什么价格 说的我有点心动了

    • zm说道:

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

  9. SEOIMO说道:

    互联网时代,Google是你最好的老师。
    +10086个赞!

发表回复

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