31

一致しないすべての URL を自分のホームページにリダイレクトしたいと考えています。すなわち。誰かがwww.mysite.com/blah/blah/blah/foo/barorに行くwww.mysite.com/invalid_url- 私は彼らをにリダイレクトしたいwww.mysite.com

明らかに、有効な URL に干渉したくありません。

これらの無効な URL にリクエストをリダイレクトするために使用できるワイルドカード マッチャーはありますか?

4

3 に答える 3

26

「キャッチオール」ミドルウェアを Express チェーンの最後のミドルウェア/ルートとして挿入できます。

//configure the order of operations for request handlers:
app.configure(function(){
  app.use(express.logger('dev'));
  app.use(express.bodyParser());
  app.use(express.cookieParser());
  app.use(express.static(__dirname+'/assets'));  // try to serve static files
  app.use(app.router);                           // try to match req with a route
  app.use(redirectUnmatched);                    // redirect if nothing else sent a response
});

function redirectUnmatched(req, res) {
  res.redirect("http://www.mysite.com/");
}

...

// your routes
app.get('/', function(req, res) { ... });
...

// start listening
app.listen(3000);

このような設定を使用して、カスタム404 Not Foundページを生成します。

于 2013-05-19T18:06:58.290 に答える
3

私はここで非常に早いですが、これがこれに対する私の解決策です

app.get('/', (req, res) => {
    res.render('index')
})

app.get('*', (req, res) => {
    res.redirect('/')
})

ルートの順序を使用して、特定の 1 つの URL をリダイレクトしてから、他のすべてのルートをキャッチします。キャッチオールの上に必要なルートを配置すると、準備完了です。

私の例は、同じルートページにリダイレクトされ、URL が指定されているだけです

于 2020-05-02T06:55:18.287 に答える