大多数网站(例如 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
- 子域名用于防止与其他用户的路径冲突
- 对于第二点,你需要代理来对流量进行分类并将其发送到正确的地方