2

Express 3.0でこれを行う方法について何か考えはありますか? www 以外の URL は、Web サイトのさまざまな領域で非常に奇妙な問題を引き起こしているためです。

ありがとう!

4

2 に答える 2

5

答えは私にはうまくいきませんでした。
次のコードを使用しました ( http://redirect-www.org/#nodejs ):

//REDIRECT www.domain.com TO domain.com
app.get ('/*', function (req, res, next){
    var protocol = 'http' + (req.connection.encrypted ? 's' : '') + '://'
      , host = req.headers.host
      , href
      ;

    // no www. present, nothing to do here
    if (!/^www\./i.test(host)) {
      next();
      return;
    }

    // remove www.
    host = host.replace(/^www\./i, '');
    href = protocol + host + req.url;
    res.statusCode = 301;
    res.setHeader('Location', href);
    res.write('Redirecting to ' + host + req.url + '');
    res.end();
});

注意: これにより、www が非 www にリダイレクトされます。反対の場合はnotif条件の を削除host = host.replace(/^www\./i, '');してから、host = 'www.' + host;

于 2014-02-13T12:04:29.620 に答える
4

だから私は別の質問から答えを見つけました。

Node.js: Express なしで非 www を 301 リダイレクトする

前に検索して申し訳ありません

app.get ('/*', function (req, res, next){
  if (!req.headers.host.match(/^www\./)){
      res.writeHead (301, {'Location': 'http://mysite.com'});
  }else{ 
     return next();
  }
});
于 2013-10-20T02:34:31.497 に答える