概述

刚开始使用WordPress使用的是Apache进行配置,后来想要换成Nginx,结果发现使用Nginx在WordPress博客主页上点击分类目录会报404的错误。刚开始以为是固定链接设置导致的问题,便去修改了固定链接,发现没有效果,单独的页面可以正常显示,而分页目录及带有多级路径的地址还是报404。后续查阅了相关资料,发现是使用了Nginx后没有设置相应的伪静态规则导致的。

问题

Apache 在 WordPress 目录会寻找.htaccess文件,而 .htaccess文件 里已经带有 WordPress 自己生成的完整 RewriteRule,所以即使主机层面没做任何额外配置,Apache 也能把请求正确地转给 index.php,也就几乎看不到 404。

Nginx 则完全相反——它根本不会去看 .htaccess文件,它必须在server{}中配置相应的规则,否则就会报404。

Nginx环境的wordpress伪静态规则

使用相应的控制面板可以在面板中进行设置

宝塔面板(例)

  1. 登录宝塔 → 网站 → 找到域名 → 点「设置」。
  1. 弹出窗口里切到「伪静态」标签。
  1. 下拉框选 WordPress(或手动把下面的代码粘进去),点「保存」。
location / {
    try_files $uri $uri/ /index.php?$args;
}
  • 回到「软件商店 → Nginx」点一次「重载配置」或「重启」。

无控制面板(纯代码)

SSH 连服务器,编辑Nginx配置文件(一般在 /etc/nginx/conf.d/你的域名.conf/usr/local/nginx/conf/vhost/你的域名.conf),在 server{} 块里加上:

location / {
    try_files $uri $uri/ /index.php?$args;
}

保存后执行:

nginx -t  
systemctl reload nginx

确认生效

刷新缓存,重新进入目录页面

此作者没有提供个人介绍。
最后更新于 2025-08-12