如何在 nextjs 自定义服务器中删除 x-powered-by header
How to remove x-powered-by header in nextjs custom server
我正在使用 Next 创建 Web 应用程序,我想从响应 header 中删除 x-powered-by
,我尝试创建自定义服务器并使用 expressjs .disable('x-powered-by')
但它没用。
这是我所做的:
const express = require('express')
const next = require('next')
const port = parseInt(process.env.PORT, 10) || 3001
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()
app.prepare()
.then(() => {
const server = express()
.use(handle)
server.disable('x-powered-by'); // ???
server.listen(port, (err) => {
if (err) throw err
console.log(`> Ready on http://localhost:${port}`)
})
})
嗯,如果你不想 return 这个 header 你只需要写
res.removeHeader('header-name'); //any header that you want to remove
所以你需要写
res.removeHeader('X-Powered-By');
在终点
以下代码有效。您在此处所做的正确操作是从 Express 中删除 X-Powered-By header。因为您正在使用 Next,所以您需要禁用 Next 和 Express X-Powered-By header。
我没有从 Next 中找到 api 来禁用。但是可以直接改objectapp.config.poweredByHeader = false
const express = require('express')
const next = require('next')
const port = parseInt(process.env.PORT, 10) || 3001
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()
app.config.poweredByHeader = false
app.prepare()
.then(() => {
const server = express().use(handle)
server.disable('x-powered-by'); // This disables Express Header
server.listen(port, (err) => {
if (err) throw err
console.log(`> Ready on http://localhost:${port}`)
})
})
对我来说,当我使用 server.disable('x-powered-by');
时,结果是 Next.js 7.0.2
作为 x-powered-by
值。
在 next.config.js
中添加以下行应该有效
module.exports = {
poweredByHeader: false,
...
}
或
const app = next({ dev, xPoweredBy: false })
现在很简单
默认情况下 Next.js 将添加 x-powered-by header。对于其中的 opt-out,打开 next.config.js 并禁用 poweredByHeader 配置:
module.exports = {
poweredByHeader: false,
}
参见 - https://nextjs.org/docs/api-reference/next.config.js/disabling-x-powered-by
我正在使用 Next 创建 Web 应用程序,我想从响应 header 中删除 x-powered-by
,我尝试创建自定义服务器并使用 expressjs .disable('x-powered-by')
但它没用。
这是我所做的:
const express = require('express')
const next = require('next')
const port = parseInt(process.env.PORT, 10) || 3001
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()
app.prepare()
.then(() => {
const server = express()
.use(handle)
server.disable('x-powered-by'); // ???
server.listen(port, (err) => {
if (err) throw err
console.log(`> Ready on http://localhost:${port}`)
})
})
嗯,如果你不想 return 这个 header 你只需要写
res.removeHeader('header-name'); //any header that you want to remove
所以你需要写
res.removeHeader('X-Powered-By');
在终点
以下代码有效。您在此处所做的正确操作是从 Express 中删除 X-Powered-By header。因为您正在使用 Next,所以您需要禁用 Next 和 Express X-Powered-By header。
我没有从 Next 中找到 api 来禁用。但是可以直接改objectapp.config.poweredByHeader = false
const express = require('express')
const next = require('next')
const port = parseInt(process.env.PORT, 10) || 3001
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()
app.config.poweredByHeader = false
app.prepare()
.then(() => {
const server = express().use(handle)
server.disable('x-powered-by'); // This disables Express Header
server.listen(port, (err) => {
if (err) throw err
console.log(`> Ready on http://localhost:${port}`)
})
})
对我来说,当我使用 server.disable('x-powered-by');
时,结果是 Next.js 7.0.2
作为 x-powered-by
值。
在 next.config.js
中添加以下行应该有效
module.exports = {
poweredByHeader: false,
...
}
或
const app = next({ dev, xPoweredBy: false })
现在很简单
默认情况下 Next.js 将添加 x-powered-by header。对于其中的 opt-out,打开 next.config.js 并禁用 poweredByHeader 配置:
module.exports = {
poweredByHeader: false,
}
参见 - https://nextjs.org/docs/api-reference/next.config.js/disabling-x-powered-by