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会自动拼接正确的文件路径
验证步骤
- 保存配置后重启MAMP的Nginx服务
- 登录WordPress后台,重新设置「文章名」固定链接(无需修改站点URL)
- 测试前端页面和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
相关产品推荐
相关产品推荐

