如何在 Nginx 服务器上配置 WordPress 伪静态规则?

文章导读
在 Nginx 上配置 WordPress 伪静态,核心是在 location / 块中使用 try_files 指令将请求转发给 index.php。以下是包含备份、完整配置上下文及子目录适配的实操方案。
📋 目录
  1. 核心配置与备份
  2. 子目录安装特殊配置
  3. 实操步骤
  4. 验证与排查
  5. 常见坑
A A

在 Nginx 上配置 WordPress 伪静态,核心是在 location / 块中使用 try_files 指令将请求转发给 index.php。以下是包含备份、完整配置上下文及子目录适配的实操方案。

先说结论:配置核心在于让 Nginx 将不存在的文件请求转发给 index.php 处理,同时需在 WordPress 后台启用固定链接。

  • 适合:标准 Nginx 环境或宝塔面板 Nginx 站点
  • 先准备:备份配置文件,确认 WordPress 版本及安装路径
  • 验收:访问文章内页确认返回 200 状态码且无 404 错误

核心配置与备份

修改配置前务必备份,防止语法错误导致服务无法启动。

1. 备份配置文件

cp /etc/nginx/sites-available/your_site.conf /etc/nginx/sites-available/your_site.conf.bak

2. 完整 Server 块配置示例

如何在 Nginx 服务器上配置 WordPress 伪静态规则?

以下是包含上下文的标准配置,请根据实际域名和路径修改:

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

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php-fpm.sock;
    }
}

若使用宝塔面板,可在站点设置 - 伪静态中选择 wordpress 规则一键应用,但仍建议手动备份。

子目录安装特殊配置

若 WordPress 安装在子目录(如 /blog/),需调整 location 路径和转发目标:

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

注意转发路径需包含子目录名称,否则会导致 404 或无限重定向。

如何在 Nginx 服务器上配置 WordPress 伪静态规则?

实操步骤

步骤 1:调整 WordPress 后台设置
登录 WordPress 后台,进入 设置 → 固定链接,选择除“朴素”以外的任意结构(建议“文章名”),点击保存更改。

步骤 2:修改 Nginx 配置文件
编辑配置文件,定位到 location /,填入上述 try_files 代码。确保 index.php 路径与实际安装路径一致。

步骤 3:测试并重载服务
执行 nginx -t 检查配置语法。若显示 successful,执行 systemctl reload nginx 使配置生效。

如何在 Nginx 服务器上配置 WordPress 伪静态规则?

验证与排查

验证方法:访问任意文章内页链接,浏览器开发者工具网络状态应为 200 OK。也可使用命令验证:

curl -I https://example.com/sample-post/

排查步骤:若返回 404,检查 Nginx 错误日志:

tail -f /var/log/nginx/error.log

查看是否有权限错误或路径匹配问题。确保 Nginx 运行用户(如 www-data)有权限读取 WordPress 目录。

常见坑

1. 规则冲突:避免在 location / 中混用 rewrite 和 try_files,优先使用 try_files 方案。
2. 忘记重载:修改配置文件后未重载 Nginx 服务,导致旧规则依然生效。
3. 缓存干扰:若使用缓存插件,配置变更后需清除缓存再验证。
4. SSL 配置:若启用 HTTPS,确保 server 块监听 443 端口且 SSL 证书路径正确。