0
使用Express/Node.js我收到的GET請求數量未知。參數的名稱並不總是預先知道的。我需要將這些請求重定向到一個新的URL,同時保持所有現有的GET參數。如何使用express/Node.js保持所有GET參數時重定向URL
即。我可能得到的任何這些
http://example.com/example
http://example.com/example?id=xxx
http://example.com/example?a=xxx&_b=xxx...
etc
而這又需要重定向到:
http://newexample.com/example
http://otherdomain.org/sample?type=new&id=xxx
http://newexample.com/sample?a=xxx&_b=xxx...
etc
我寫這個代碼來實現這一點,但感覺這將是常見的功能,可能會已經存在於框架中。有沒有更好的辦法?
app.get('/example', function(req, res){
var oldParams = ""
var redirectUrl = config.exampleUrlNew;
if (req.originalUrl != null && req.originalUrl.indexOf('?') > 0) {
oldParams = req.originalUrl.split("?")[1];
}
if (oldParams != "" && redirectUrl.indexOf('?') > 0) {
oldParams = "&" + oldParams;
} else {
oldParams = "?" + oldParams;
}
res.redirect(redirectUrl + oldParams)
});
'req.url.replace('example.com','newexample.com')' – laggingreflex
不夠公平......但是爲了清晰起見,我簡化了實際示例。替換網址與原始網址和未知網址完全不同(在配置中指定)。它甚至可能已經對原始URL中沒有的新URL參數進行硬編碼。 – Jimmy