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

使用Ngrok时跳转至Rails欢迎页的子域名问题

解决Ngrok转发后Rails显示欢迎页的问题

核心原因

你的Rails应用依赖app.lvh.me子域名匹配路由或加载对应站点,但Ngrok转发时的Host头未正确传递,导致Rails识别不到app子域名,从而触发默认路由显示欢迎页。

具体解决方案

1. 修改Ngrok命令,强制指定Host头

将原命令中的--host-header=rewrite替换为明确指定Host值为app.lvh.me,命令如下:

ngrok http --host-header="app.lvh.me" --request-header-remove 'referer' app.lvh.me:3000

--host-header=rewrite会自动将Host头替换为Ngrok的转发域名,而明确指定Host值能确保Rails收到的请求Host始终是app.lvh.me,从而匹配到你的子域名站点。

2. 确认Rails开发环境允许该主机访问

打开config/environments/development.rb,确保已将app.lvh.me添加到允许的主机列表:

Rails.application.configure do
  # 其他配置项...
  config.hosts << "app.lvh.me"
end

修改后重启Rails服务器生效。

3. 验证本地Hosts配置

检查本地hosts文件(Windows路径:C:\Windows\System32\drivers\etc\hosts;Mac/Linux路径:/etc/hosts),确保存在以下条目:

127.0.0.1 app.lvh.me

(你本地访问正常大概率已配置,此步骤用于排除意外情况)

4. 检查Rails路由的子域名约束

如果你的路由设置了子域名约束,比如:

Rails.application.routes.draw do
  constraints subdomain: 'app' do
    # 你的应用业务路由
  end

  # 默认路由(对应Rails欢迎页)
end

确认约束规则正确,只有当请求Host包含app子域名时,才会匹配到你的业务路由,否则会走默认路由显示欢迎页。

完成以上操作后,重启Ngrok和Rails服务器,再访问Ngrok生成的链接即可正常加载app.lvh.me站点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:05:18