固定链接一改文章页全 404:Nginx 伪静态一次配对

来源:互联网 时间:2026-09-10

网站装好了,第一件想做的事往往是把固定链接从丑陋的 ?p=123 改成简洁的文章名结构——好看,搜索引擎也喜欢。改完首页还正常,点开任何一篇文章全是 404,这是 WordPress 站长装机后的第一大翻车现场。先说根源:伪静态规则由 Web 服务器执行,WordPress 后台只负责“告诉”服务器该用什么格式,规则本身要你在 Nginx 里亲手写。Apache 靠 .htaccess 文件自动生效,Nginx 压根不读这个文件——照着 Apache 教程抄的朋友,从第一步就走进了死胡同。

原理一句话讲透:访问 /post-title 这样的地址时,磁盘上并不存在这个文件,Nginx 按 try_files 的顺序找一遍——找不到真实文件,就要有最后一道兜底:把请求转交给 WordPress 的 index.php,由 PHP 根据路由规则解析出这其实是篇文章。缺了这道兜底,Nginx 老老实实返回 404。上一篇部署站点时写的 try_files $uri $uri/ =404 是纯静态站写法,WordPress 要换掉最后一段。

server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.php index.html;

location / {
# WordPress 伪静态核心:找不到文件就交给 index.php
try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
# nginx -t && systemctl reload nginx

注意 php8.3-fpm.sock 的版本号要和机器上实际运行的 PHP-FPM 一致,不确定就 ls /run/php/ 看一眼,下一篇讲 PHP 版本管理时会专门展开。改完老三样验证:nginx -t 过,reload,然后前台把各种页面类型点一遍——文章页、分类归档、标签页、搜索结果页、翻页的第二页。伪静态的坑经常只在一两类页面上暴露,比如固定链接选了带日期的 /2026/09/文章名/ 结构,归档翻页出了问题首页看不出来。

两个延伸提醒。一是装了缓存插件(WP Super Cache 之类)它也会往 Nginx 配置里塞规则,叠加出错先注释掉插件生成的段落排查,确认基线伪静态是好的再谈缓存;二是日后想启用多站点网络,rewrite 规则要换成 WordPress 官方文档给的多站点专用版,别硬套单站规则。固定链接这件事的黄金时间是建站初期——URL 结构一旦被搜索引擎收录再改动,301 重定向做不干净就是一场流量地震,所以今天配的这几十行,值得一开始就配对配齐。

相关阅读:伪静态是 WordPress 上线路上的小坑之一。《从零建站第一步:技术栈选型总纲,别一上来就纠结框架》把安装、伪静态、证书这些坑按顺序排好,照总纲的动线走一遍,少踩大半。

相关文章

A5创业网 版权所有

返回顶部