转发域但保留 URL

Forward a domain but keep URL

我想将 http://app.client-domain.com/ 发送到我的 Heroku 托管的 Rails 应用 http://www.my-domain.com/

根据研究,这看起来会相对简单(域记录 redirects/forwards,如 A、MX、CName 等)

但是,我不希望 http://app.client-domain.com/ 只将浏览器转发到 http://www.my-domain.com...我希望它显示用户仍在 http://app.client-domain.com

例如,请求:

http://app.other-domain.com/user/4

将从以下位置提供数据:

http://www.my-domain.com/user/4

...但 URL 将保留:

http://app.other-domain.com/user/4

同样,如果用户(通过应用程序)被发送到应用程序内的新地址(如 /products/4),上述方案将得到保留。它真的看起来像应用程序生活在

http://app.other-domain.com/

这可能吗?

有可能。有两种主要方法可以实现这样的目标。

客户端的首选方法是使用指向 app.client-domain.comwww.my-domain.com 的 DNS CNAME。您的 heroku 应用程序必须配置域 app.client-domain.com。它还应配置为不重定向到 "primary" 域。

解决此问题的更麻烦的方法是为 app.client-domain.com 设置一个网络服务器,该服务器为带框架的网页提供服务,然后将 www.my-domain.com 加载到框架中。

CNAME 方法是迄今为止首选的方法。使用框架会导致 SSL 问题,并且某些网站可能会试图逃避框架,如果您使用支付网关,也可能会导致 PCI 合规性问题。