一致しないすべての URL を自分のホームページにリダイレクトしたいと考えています。すなわち。誰かがwww.mysite.com/blah/blah/blah/foo/bar
orに行くwww.mysite.com/invalid_url
- 私は彼らをにリダイレクトしたいwww.mysite.com
明らかに、有効な URL に干渉したくありません。
これらの無効な URL にリクエストをリダイレクトするために使用できるワイルドカード マッチャーはありますか?
「キャッチオール」ミドルウェアを 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
ページを生成します。
私はここで非常に早いですが、これがこれに対する私の解決策です
app.get('/', (req, res) => {
res.render('index')
})
app.get('*', (req, res) => {
res.redirect('/')
})
ルートの順序を使用して、特定の 1 つの URL をリダイレクトしてから、他のすべてのルートをキャッチします。キャッチオールの上に必要なルートを配置すると、準備完了です。
私の例は、同じルートページにリダイレクトされ、URL が指定されているだけです