我必須檢查http請求的HOST
,如果它等於example.com
或www.example.com
,我必須做301重定向。如何使用ExpressJS檢查主機?
我該如何使用Node.js和Express Web Framework來做到這一點?
我必須檢查http請求的HOST
,如果它等於example.com
或www.example.com
,我必須做301重定向。如何使用ExpressJS檢查主機?
我該如何使用Node.js和Express Web Framework來做到這一點?
req.header('host')
使用,在您的請求處理。
它不應該是'req.headers.host'嗎? –
做一個字符串搜索,使用正則表達式,因爲這樣:
if (req.headers.host.search(/^www/) !== -1) {
res.redirect(301, "http://example.com/");
}
搜索方法接受一個正則表達式作爲第一個參數,由周圍的斜線表示。表達式中的第一個字符^表示明確查看字符串的開頭。表達式的其餘部分是尋找三個明確的w。如果字符串以「www」開頭,那麼搜索方法將返回匹配的索引(如果有的話)(0)或-1(如果找不到)。
使用
req.headers.host;
或
req.header('host');
都將返回主機名。例如localhost:3000
http請求的HOST是標題的一部分。傳遞給你的回調的請求對象有一個.header()方法。你有沒有嘗試閱讀文檔? –