如何恢复localhost端口默认行为?解决Next.js永久重定向残留问题
问题原因
你之前在Next.js中设置的permanent: true对应返回301永久重定向响应,这类重定向会被浏览器长期缓存,且缓存是绑定域名(localhost)而非项目或端口的,所以你切换项目、换端口都还是会命中旧的重定向规则。你后续添加的反向重定向不生效,是因为浏览器直接读取本地缓存的重定向规则,根本不会发起请求到当前的开发服务,服务端配置自然无法生效。
解决步骤
清理localhost站点缓存(最优先)
不需要清空浏览器全部缓存,仅清理localhost对应站点数据即可:- 打开
localhost:3000页面,按下F12调出开发者工具 - 右键点击地址栏左侧的刷新按钮,选择「清空缓存并硬性重新加载」即可清除对应301缓存
如果你用Chromium内核浏览器(Chrome/Edge等),也可以额外执行:
- 访问
chrome://net-internals/#dns点击「Clear host cache」清空DNS缓存 - 访问
chrome://net-internals/#sockets点击「Flush socket pools」刷新连接池
- 打开
临时验证方案
如果暂时不想清理缓存,可以通过给地址加随机查询参数验证规则是否已经恢复,比如访问localhost:3000?random=123,如果该地址不会触发重定向,即可确认是301缓存导致的问题。
后续开发建议
本地测试重定向规则时,先把permanent参数设为false返回302临时重定向,确认规则符合预期后再根据上线需求调整为301,避免本地缓存的重定向规则污染后续开发。
内容的提问来源于stack exchange,提问作者Sheikh Enamul Haque
相关产品推荐
相关产品推荐

