簡體   English   中英

使用Node.js和Express將非www重定向到www

[英]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/foohttp://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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM