2011-06-28 11 views
5

मुझे http अनुरोध के HOST को जांचना है, यदि यह example.com या www.example.com के बराबर है, तो मुझे 301 रीडायरेक्ट करना होगा।एक्सप्रेसजेएस का उपयोग कर HOST की जांच कैसे करें?

मैं नोड.जेएस और एक्सप्रेस वेब फ्रेमवर्क का उपयोग करके यह कैसे कर सकता हूं?

+4

http अनुरोध का HOST शीर्षलेख का हिस्सा है। आपके कॉलबैक में पास की गई ऑब्जेक्ट ऑब्जेक्ट में एक हैडर() विधि है। क्या आपने दस्तावेज को पढ़ने की कोशिश की? –

उत्तर

3

req.header('host')

उपयोग है कि आपके अनुरोध संचालकों में।

+7

यह 'req.headers.host' नहीं होना चाहिए? –

2

एक स्ट्रिंग खोज करें, रेगुलर एक्सप्रेशन के उपयोग, के रूप में इतना:

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

खोज विधि पहला तर्क, आसपास के स्लैश से दर्शाया जाता है के रूप में एक नियमित अभिव्यक्ति स्वीकार करता है। अभिव्यक्ति में पहला अक्षर,^स्ट्रिंग की शुरुआत को स्पष्ट रूप से देखना है। बाकी अभिव्यक्ति तीन स्पष्ट डब्ल्यू की तलाश में है। यदि स्ट्रिंग "www" से शुरू होती है, तो खोज विधि मिलान की अनुक्रमणिका वापस कर देगी, अगर कोई (0), या -1, अगर यह नहीं मिला।

3

उपयोग

req.headers.host; 

या

req.header('host'); 

दोनों आप नाम की मेजबानी वापस आ जाएगी। उदाहरण के लिए localhost:3000

संबंधित मुद्दे