[英]Redirect non-www to www with Node.js and Express
我正在服務一個靜態目錄,如下所示:
var app = express.createServer();
app.configure(function(){
app.use(express.static(__dirname + '/public'));
});
所以我根本不使用路線。 我想將example.com重定向到www.example.com,這是否可以使用Express?
以下代碼在重定向時保留路徑
例如: http : //foo.com/foo到http://www.foo.com/foo
var app = express.createServer();
self.app.all(/.*/, function(req, res, next) {
var host = req.header("host");
if (host.match(/^www\..*/i)) {
next();
} else {
res.redirect(301, "http://www." + host + req.url);
}
});
app.use('/',express.static('public'));
是。 這應該做到這一點。
var express = require("express");
var app = express.createServer();
var port = 9090;
app.all(/.*/, function(req, res, next) {
var host = req.header("host");
if (host.match(/^www\..*/i)) {
next();
} else {
res.redirect(301, "http://www." + host);
}
});
app.use(express.static(__dirname + "/public"));
app.listen(port);
或者,您可以使用現成的Express模塊來完成您想要的操作,例如node-force-domain。
有關詳細信息,請參閱https://github.com/goloroden/node-force-domain 。
你可以使用npm的express-force-domain包:
//install
npm install express-force-domain
///app.js
app.all('*', require('./express-force-domain')('http://www.example.com') );
在npm上打包: https ://npmjs.org/package/express-force-domain
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.