如何在Next.js应用程序中将所有对http://example.com
的请求重定向到https://example.com
?
我还没怎么用过Next.js。来自后端。我正在寻找一个初始化Next.js服务器的文件,但似乎找不到。最接近的是/src/pages/_app.tsx
。
我发现this answer解决了同样的问题,但在我的项目中没有地方可以访问req
或res
对象。该应用程序只需使用next start
启动。
official docs有关于重定向单独端点的信息,但我想将其作为所有端点的默认配置。
3条答案
按热度按时间kqqjbcuj1#
对我来说,我个人不会在Next.JS端做重定向。相反,我在DNS端做重定向,使用类似Cloudflare的东西。但是,如果你真的想在next.js应用程序上进行重定向,Heroku redirect Next.js React client app http to https将是一个很好的开始。
enxuqcxy2#
wz1wpwve3#
从Next.js v12开始,就有了所谓的“中间件”。它是一个唯一的文件,充当服务器和客户端之间的中间件。下面是我在TypeScript中的实现:
在根路径中创建一个名为“middleware.ts”的新文件,然后所有的奇迹将自动发生。
我认为代码本身会说话,但这里有一个简短的解释:我们检查环境是否为生产环境,是否不在本地主机上,以及协议是否为HTTP。如果是,我们将用户重定向到没有HTTP的相同URL,然后将HTTP添加到URL。
这工作完美,我用它在很多项目,也在Heroku。