我做了以下事情:
我按照中概述的说明创建了一个NextJS应用程序 NextJS 文档。
此后,我使用 Firebae App Hosting 部署了这个 NextJS 应用程序 (公开预览版)按照以下说明进行操作 Firebase 文档。
最后,我通过以下方式连接了一个自定义域(在 GoDaddy 上购买) 遵循教程,也在 Custom 域中概述 文档(注意官方文档没有提到任何 GoDaddy 的特殊性)。
这一切都工作得很好,除了一件事,那就是
http
-> https
重定向。
我找不到任何资源来解释这如何适用于专门部署在 Firebase 应用托管设置上的 NextJS 应用。有一些资源提到了如何在旧版 Firebase Hosting 上执行此操作,还有一些关于如何在中间件上添加类似内容的建议,但两者都对我不起作用(在后者中,我的中间件似乎完全被忽略):
if (request.headers.get("x-forwarded-proto") !== "https") {
return NextResponse.redirect(
`https://${request.headers.get('host')}${request.nextUrl.pathname}`,
301
)
}
因此,建议使用什么方法来确保当用户访问 http://example.com
时,它会被重定向到
https://example.com
,以获取部署在 Firebase 应用程序托管上且域名是在 GoDaddy.com 上购买的 NextJS 应用程序?
Firebase 托管将所有域重定向到 HTTPS,Firebase 应用程序托管还重定向 Hosted.app 域(因为 .app 强制使用 HTTPS)。自定义域似乎没有被重定向。
最简单的解决方案是使用服务作为
CloudFlare并以这种方式创建重定向规则。正如您提到的,另一个解决方案是同时使用常规 Firebase 托管。 您可以在
此处