首页 > 解决方案 > 如何在 Next.js 中添加 301 重定向(从 http 到 https)?

问题描述

如何在 Next.js 中添加 301 重定向(从 http 到 https)?

例如 - 从这个“http://stackoverflow.com/”到这个“https://stackoverflow.com/”?

标签: javascriptnode.jsnext.js

解决方案


您可以从 _app.js 执行此操作:

res.writeHead(301, { Location: `https://${req?.headers.host}/${asPath}` })

如果您有 forvarded-proto 标头,那么您还可以检查:

req.headers['x-forwarded-proto'] === 'http'

否则,您必须确定您是在http还是https自己,例如,您可以尝试解析 url:

const url = new URL('http://example.com')
console.log(url.protocol) // output: "http:"

推荐阅读