我有一个静态站点,我在Dokku中部署的简单单页面布局。我需要从www到非www以及从*.website1.com
到website2.com
进行重定向(301),但我不知道如何。我试图在npm中使用express-force-domain但它使我的URL变得疯狂并且有一些重定向循环,我正在尝试其他方法,我在网上找到但没有成功。
我的server.js是:
var express = require('express')
var app = express();
app.set('port', (process.env.PORT || 80))
app.use(express.static(__dirname + '/public'))
app.get('/', function(request, response) {
response.send('Hello World!')
})
app.listen(app.get('port'), function() {
console.log("Node app is running at localhost:" + app.get('port'))
})
这是可行的版本,但没有重定向。
答案 0 :(得分:32)
res.redirect(301, 'http://yourotherdomain.com' + req.path)
答案 1 :(得分:10)
对于从谷歌到达此处的任何人,虽然@ frederic的答案仍然是快递文档的建议,但response.send(status, body)
样式已被弃用并将产生警告(我在快递4.13.4时)写作),更重要的是我发现它在重定向时不再产生预期的结果。
正如@Markasoftware所提到的,为了实现自动跟踪301,您需要将位置标头设置为您想要的URL。请求正文可以为空:
response.set('location', 'https://my.redirect.location');
response.status(301).send()
答案 2 :(得分:0)
据我了解,要设置HTTP 301代码,您可以将响应代码设置为301
,然后将Location
标头设置为您希望其重定向到的任何网址。我不认为这是非www网址的首选方式,但