Nginx子域名下WordPress 80端口无法访问但普通PHP正常
问题分析与解决方案
核心原因:WordPress自身的站点URL配置导致重定向
你之前用8085端口搭建站点时,WordPress已经把带端口的地址(比如http://doc.mydomain.com:8085)写入了数据库的wp_options表(表前缀如果不是wp_就对应你的自定义前缀),具体是siteurl和home这两个字段。当你把Nginx切换到80端口后,访问不带端口的地址时,WordPress检测到当前访问地址和数据库里存储的“官方地址”不一致,就会自动发送301重定向到它认为正确的带端口地址。而普通的phpinfo()脚本只是单纯输出PHP环境信息,根本不会读取WordPress的数据库配置,自然不会触发这个重定向逻辑。解决方法
- 直接修改数据库
登录数据库管理工具(比如phpMyAdmin),找到WordPress对应的数据库,打开wp_options表,定位option_name为siteurl和home的两条记录,把option_value修改为不带端口的地址http://doc.mydomain.com。 - 通过配置文件临时覆盖
如果暂时无法操作数据库,可以在WordPress根目录的wp-config.php中添加以下代码,强制指定站点URL(添加在/* That's all, stop editing! Happy publishing. */这行之前即可):define('WP_HOME','http://doc.mydomain.com'); define('WP_SITEURL','http://doc.mydomain.com');
- 直接修改数据库
额外注意事项
修复配置后记得清理浏览器缓存,因为301重定向会被浏览器缓存,旧缓存可能会导致依然出现跳转问题。同时检查Nginx配置文件,确保没有额外的重定向规则干扰正常访问。
内容的提问来源于stack exchange,提问作者Henry
相关产品推荐
相关产品推荐

