可以在 /paths 下托管不同的应用程序并映射到自定义域,而不是将它们托管在子域下

可以在 /paths 下托管不同的应用程序并映射到自定义域,而不是将它们托管在子域下

大多数网站(例如 App Engine 和 Heroku)的 URL 如下:

https://my-app-name.herokuapp.com/foo

而不是这样:

https://herokuapp.com/my-app-name/foo

我想知道 (a) 为什么会这样,以及 (b) 是否有办法支持后者。GitHub 似乎使用 gh-pages 对 repo 中的项目执行此操作。例如,据我记得,给定一个这样的 repo:

https://github.com/myuser/myrepo

我可以向我的 repo 添加 CNAME 记录,在其他地方的 DNS 提供商/管理器上进行一些配置,最终得到一个自定义域,例如:

myrepodomain.com

我的问题是这样的。如果可以通过某种方式配置服务器或系统,以便将应用程序映射到小路而不是子域,所以foo.com/myapp而不是myapp.foo.com,这样您就可以获取该子路径并将其映射到自定义域,就像 GitHub 在我的示例中所做的那样。如果不可能,我想知道为什么不行。我隐约感觉到 cookies 和会话可能在某种情况下比另一种情况下更成问题,或者 SEO 可能是一个问题,但也许有解决方案。

本质上我想做的事情是:

https://foo.com/app1/some/path
https://foo.com/app2/another/path
https://foo.com/app...

然后,对于那些想要自定义域名的人,我将它们映射到他们想要的任何内容:

https://foo.com/app1 -> helloworld.com
https://foo.com/app2 -> foobar.com

想知道这是否有可能,如果可能,大致如何做到。

答案1

  • 子域名用于防止与其他用户的路径冲突
  • 对于第二点,你需要代理来对流量进行分类并将其发送到正确的地方

相关内容