2011-06-28 34 views
5

我必須檢查http請求的HOST,如果它等於example.comwww.example.com,我必須做301重定向。如何使用ExpressJS檢查主機?

我該如何使用Node.js和Express Web Framework來做到這一點?

+4

http請求的HOST是標題的一部分。傳遞給你的回調的請求對象有一個.header()方法。你有沒有嘗試閱讀文檔? –

回答

3

req.header('host')

使用,在您的請求處理。

+7

它不應該是'req.headers.host'嗎? –

2

做一個字符串搜索,使用正則表達式,因爲這樣:

if (req.headers.host.search(/^www/) !== -1) { 
    res.redirect(301, "http://example.com/"); 
} 

搜索方法接受一個正則表達式作爲第一個參數,由周圍的斜線表示。表達式中的第一個字符^表示明確查看字符串的開頭。表達式的其餘部分是尋找三個明確的w。如果字符串以「www」開頭,那麼搜索方法將返回匹配的索引(如果有的話)(0)或-1(如果找不到)。

3

使用

req.headers.host; 

req.header('host'); 

都將返回主機名。例如localhost:3000