使用ngrok暴露本地WordPress时访问/wp-admin重定向到localhost如何解决
问题原因
WordPress默认将站点域名硬存储在配置或数据库中,且不会主动识别ngrok这类反向代理传递的公网域名、协议信息,访问后台时会默认用预设的localhost地址生成重定向链接,就会出现跳转本地的问题。
可行解决方案
- 优先修改站点根目录的
wp-config.php配置文件,在文件末尾停止编辑的提示语前插入以下代码,让WordPress动态适配当前访问的域名:
// 动态适配公网访问域名 define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']); define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']); // 识别ngrok传递的HTTPS协议标识 if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { $_SERVER['HTTPS'] = 'on'; }
如果你的ngrok隧道使用HTTP协议,将代码中的https替换为http即可。该配置优先级高于数据库存储的固定站点地址,无需额外修改数据库内容。
调整ngrok启动参数,重写请求头避免WordPress识别到本地Host:
本地WordPress运行在80端口时,启动命令为ngrok http 80 --host-header="localhost:80",如果本地服务端口为其他值(如8080),对应替换命令中的两处80即可。清理访问缓存:修改配置后清理浏览器缓存,或使用无痕模式访问公网后台地址,避免本地留存的旧301重定向缓存影响验证效果。
内容的提问来源于stack exchange,提问作者Abhinav
相关产品推荐
相关产品推荐

