我有一个运行AppEngine且应用程序ID为myapp
的Google Cloud项目。我已将此应用程序ID映射到自定义域example.com
。我已将myapp
的默认版本设置为www
。 secure: always
已应用于我app.yaml中的所有处理程序。此设置用于将HTTP通信重定向到HTTPS。最后,我添加了www.example.com
的CNAME记录。对于上述每种途径,我都允许Google管理和自动续订SSL证书。设置面板如下所示:
这很棒,因为所有HTTP请求都路由到其相应的HTTPS端点。
几天前,我被要求制作一个新版本的应用alpha
,并希望将其路由到https://alpha.example.com
。与www
类似我设置secure: always
的版本以对备用协议强制实施HTTPS重定向。我还为alpha.example.com添加了CNAME记录,并向其中添加了“由Google管理的自动更新”证书。 http://alpha.example.com
正确地重定向到https://alpha.example.com
,但是https://alpha.example.com
提供了我的应用程序www
的默认版本,而不是我的新版本alpha
。新设置在App Engine自定义域信息中心中如下所示:
我该怎么做才能确保http(s)?://(www)?.example.com
服务于www
版本,http(s)?://alpha.example.com
服务于alpha
版本,并确保所有内容都通过https提供?
答案 0 :(得分:1)
输入
*.example.com
会将example.com的所有子域映射到您的应用。
这意味着您必须手动处理dispatch.yaml
文件中的映射。
在您的情况下,您会想要以下内容:
dispatch:
- url: "alpha.example.com/"
service: alpha
- url: "*.example.com/"
service: default
请注意规则的顺序,因为请求将根据匹配的第一个url
模式进行路由。
要详细了解GAE标准如何路由请求,请查看How Requests are Routed文档。
要使请求重定向到应用程序的https
版本,请在app.yaml
中继续使用secure
指令。