我正在使用NodeJS,具体地说,我正在使用node-js-getting-started中的教程代码。因此,我有一个自定义域,但是默认的heroku域也处于活动状态,我希望使该自定义域成为唯一使用的域。Heroku说要这样做。
即使您设置了自定义域,应用程序的Heroku域也始终保持活动状态。如果您希望用户仅使用自定义域,则您的应用应发送HTTP状态301永久移动,以告知Web浏览器使用自定义域。Host HTTP request标头字段将显示用户尝试访问的域;如果该字段为example.herokuapp.com,请发送重定向。
我真的不明白该怎么做。我猜我必须在index.js文件中更改某些内容。
const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000
express()
.use(express.static(path.join(__dirname, 'public')))
.set('views', path.join(__dirname, 'views'))
.set('view engine', 'ejs')
.get('/', (req, res) => res.render('pages/index'))
.listen(PORT, () => console.log(`Listening on ${ PORT }`))
如果路由是“ /”或实际上是任何路由,则应使用代码301将其重定向到您的域。
尝试这样的事情。
var express = require('express')
var app = express()
self.app.all(/.*/, function(req, res, next) {
var host = req.header("host");
if (host.match(/^herokuapp\..*/i)) {
res.redirect(301, "http://www." + host + req.url);
} else {
next();
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句