我服靜態目錄,如下所示:重定向非www到www用的Node.js和快速
var app = express.createServer();
app.configure(function(){
app.use(express.static(__dirname + '/public'));
});
所以我不使用航線的。我想將example.com重定向到www.example.com,可以使用Express嗎?
我服靜態目錄,如下所示:重定向非www到www用的Node.js和快速
var app = express.createServer();
app.configure(function(){
app.use(express.static(__dirname + '/public'));
});
所以我不使用航線的。我想將example.com重定向到www.example.com,可以使用Express嗎?
是的。這應該做到這一點。
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);
你不需要重定向到9090端口嗎? – chovy 2012-10-05 08:02:46
你需要反轉你的res.redirect參數。 – chovy 2012-10-05 08:18:40
對於express 2.x,它是'res.redirect = function(url,status){'。它已在3.x中更改爲交換訂單。我會更新這個例子。通常有一個Web服務器監聽端口80,並反向代理以在不同的端口上進行表示(本例中爲9090),所以你不想在你的URL中包含9090端口。如果express是直接向互聯網提供服務,那麼如果您不使用默認端口,則您需要端口。 – 2012-10-05 14:14:14
或者,您可以使用現成的快速模塊來完成您想要的功能,例如,節點力域。
我發現這個插件不能與端口和http工作 – chovy 2012-10-05 08:02:16
讓我們繼續在GitHub上討論這個問題,我看到你打開了[問題](https://github.com/goloroden/node-force-domain/issues/1 )爲:-) – 2012-10-05 13:56:16
感謝這個模塊Golo。對我來說,谷歌分析經常抱怨「Reduntdant主機名 - 爲了避免這個問題,考慮設置一個301重定向從一個冗餘的主機名到另一個,或者創建一個搜索和替換過濾器,從主機名剝去」www。「 「。你的模塊完美地解決了它。 {{moderators谷歌分析的消息有意添加在這裏,它將幫助同行代碼輕鬆找到這個線程}} – 2015-04-18 02:25:03
可以使用快遞力域包從NPM:在NPM
//install
npm install express-force-domain
///app.js
app.all('*', require('./express-force-domain')('http://www.example.com'));
此解決方案非常有效好吧,即使是http到https – 2018-01-22 19:35:36
下面的代碼保存路徑,同時重定向
例: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'));
雖然你可以證明只需在應用層使用Express即可完成此操作,在大多數情況下,您可能希望讓Web服務器處理此問題。這將有助於保持應用程序的負載,當它不需要在那裏時。 – Brad 2015-01-20 04:46:40
另請參閱http://stackoverflow.com/questions/7013098/node-js-www-non-www-redirection – 2015-09-21 15:13:29
希望這個https://stackoverflow.com/a/39731460/1946016爲你工作,如果是這樣,請接受答案 – karthikdivi 2017-11-09 09:57:39