2011-06-28 22 views
5

Muszę sprawdzić HOST żądania http, jeśli jest równa example.com lub www.example.com, muszę wykonać Przekierowanie 301.Jak sprawdzić hosta za pomocą ExpressJS?

Jak mogę to zrobić za pomocą Node.js i Express Web Framework?

+4

HOST żądania http jest częścią nagłówka. Obiekt żądania przekazany do twojego wywołania zwrotnego ma metodę .header(). Czy próbowałeś w ogóle przeczytać dokumentację? –

Odpowiedz

3

req.header('host')

Zastosowanie że w swoim wniosku koparki.

+7

Czy nie powinno to być 'req.headers.host'? –

2

Wykonaj wyszukiwanie ciągów za pomocą wyrażenia regularnego, a więc:

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

Sposób szukania akceptuje wyrażenia regularnego jako pierwszy argument, oznaczonego przez okolicznych ukośniki. Pierwsza litera^w wyrażeniu oznacza jawne spojrzenie na początek ciągu. Reszta wyrażenia szuka trzech jawnych słów. Jeśli ciąg zaczyna się od "www", to metoda wyszukiwania zwróci indeks dopasowania, jeśli istnieje (0) lub -1, jeśli nie został znaleziony.

3

Zastosowanie

req.headers.host; 

lub

req.header('host'); 

Zarówno zwróci Ci Nazwa hosta. np. localhost:3000

Powiązane problemy