You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MAMP下Nginx环境WordPress切换文章名固定链接后遇404错误

解决Nginx下子目录WordPress固定链接与wp-admin重定向问题

问题根源

核心矛盾在于Nginx根路径配置与子目录路由规则不匹配:

  • 直接修改root到子目录后,WordPress站点URL与Nginx实际根路径冲突,触发wp-admin重定向逻辑异常
  • 保留原root时,缺少针对子目录的路由转发规则,导致固定链接无法被WordPress解析

正确的Nginx配置方案

保留root为MAMP的htdocs根目录,为/wordpress_site子目录添加独立的location规则,完整配置如下:

root                 /Applications/MAMP/htdocs;
access_log           /Applications/MAMP/logs/nginx_access.log;
error_log            /Applications/MAMP/logs/nginx_error.log;

# 主根目录基础规则
location / {
    index index.php index.html index.htm;
    try_files $uri $uri/ =404;
}

# WordPress子目录专属路由规则
location /wordpress_site {
    index index.php index.html index.htm;
    # 转发不存在的URL到WordPress入口文件处理固定链接
    try_files $uri $uri/ /wordpress_site/index.php?$args;

    # 嵌套PHP解析规则(需与你现有Nginx的PHP配置匹配)
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000; # MAMP默认PHP-FPM端口,按需调整
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

关键配置说明

  • 保留原root路径:避免WordPress站点URL与Nginx根路径不一致引发的重定向循环
  • 子目录try_files规则:明确将未匹配到的URL转发到子目录下的index.php,让WordPress处理固定链接路由
  • 嵌套PHP规则:确保子目录内的PHP文件能被正确解析,$document_root$fastcgi_script_name会自动拼接正确的文件路径

验证步骤

  1. 保存配置后重启MAMP的Nginx服务
  2. 登录WordPress后台,重新设置「文章名」固定链接(无需修改站点URL)
  3. 测试前端页面和wp-admin后台,确认两者均可正常访问

额外排查点

  • 检查WordPress后台「设置-常规」中的站点URL和主页URL是否均为http://localhost/wordpress_site(或你的本地自定义域名)
  • 若仍有重定向问题,可在wp-config.php中添加以下代码强制关闭本地环境的SSL重定向:
define('FORCE_SSL_ADMIN', false);
define('WP_HOME', 'http://localhost/wordpress_site');
define('WP_SITEURL', 'http://localhost/wordpress_site');

内容的提问来源于stack exchange,提问作者Lara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:56:00