我已将我的Node JS应用程序部署到Google Cloud App Engine上,我可以成功为我的应用程序添加自定义域名。
假设我的自定义域名为 example.com 。
现在我可以通过example.com& www.example.com ,它按预期工作。但我发现我仍然可以通过默认域浏览我的应用。 https://[project-id].appspot.com
我想禁用默认域名,是否可以这样做?
答案 0 :(得分:1)
您无法禁用该默认域。您必须编写重定向脚本。您可以在请求的HTTP_HOST
中测试“appspot”,并在请求的HTTP_USER_AGENT
中测试“AppEngine-Google”,以确定它是否是内部请求。
此外,内部函数(如cron作业和任务队列)在该域上运行,因此请小心操作。给定301,任务队列将失败。
答案 1 :(得分:1)
在考虑了GAEfan建议之后,我对路由器逻辑做了一些改变。如果主机名以“appspot.com”结尾,而用户代理包含在“AppEngine-Google”中,则会重定向到我的自定义域。
router.get('/', function(req, res, next) {
if(req.get("host").endsWith(GOOGLE_APP_SPOT) &&
req.get("User-Agent").includes(GOOGLE_USER_AGENT))
{
var redirectURL = url.format({
protocol: req.protocol,
host: CUSTOM_DOMAIN,
pathname: req.originalUrl
});
res.redirect(redirectURL);
}
res.render('templateName', viewModel);
});
答案 2 :(得分:1)
您只需使用App Engine中的dispatch.yaml
文件即可,只列出您的所有域名,但不列出*.appspot.com
域名。当您尝试访问时,Google会显示404路线。
编辑:不再可能,请查看评论。