在Google App Engine上禁用Node JS的默认域https:// .appspot.com

我已经将我的Node JS应用程序部署到Google Cloud App Engine上,并且可以成功地为我的应用程序添加自定义域。

假设我的自定义域是example.com

现在我可以通过example.com和www.example.com浏览我的应用程序,它按预期工作。 但是我发现我仍然可以通过默认域浏览我的应用程序。 https://开头[项目-ID] .appspot.com访问

我想要禁用默认域,是否有可能做到这一点?

您不能禁用该默认域。 你将不得不写一个redirect脚本。 您可以在请求的HTTP_HOSTtesting“appspot”,并在请求的HTTP_USER_AGENTtesting“AppEngine-Google”,以确定它是否是内部请求。

此外,内部函数(如cron作业和任务队列)在该域上运行,因此请小心操作。 任务队列将失败给301。

在考虑GAEfan的build议后,我对路由器的逻辑做了一些改变。 如果主机名以“appspot.com”结尾,用户代理包含“AppEngine-Google”,则会redirect到我的自定义域。

 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); }); 

您只需使用App Engine中的dispatch.yaml文件即可完成此操作,并列出您所有的域名,而不是*.appspot.com域名。 当您尝试访问Google时,Google将显示404路线。

检出官方参考 。