2015-05-11 10 views
24

मैं अपने समर्पित सर्वर में NGINX का उपयोग करता हूं।एनजीआईएनएक्स - रिटर्न 301 बनाम रिवाइट

मैं वापसी के साथ एक सवाल करती हैं, और पुनर्लेखन।


पुनर्लेखन 301:

rewrite^http://xxx.xxxxx.net/xx-xxx/$request_uri? permanent; 

वापसी 301:

location ~ redirect-this/?$ { 
    return 301 http://xxx.xxxxx.net/xx-xxx/redirect-this$1; 
} 

सभी URL का अनुरोध किया के लिए सही ढंग से अनुप्रेषित। लेकिन ..

301 रीडायरेक्ट करने के लिए और अधिक प्रभावी तरीका क्या है?

मेरे पास रीडायरेक्ट करने के लिए 200 से अधिक यूआरएल हैं। तो, आप क्या सलाह देते हैं?

+2

यह सवाल थोड़ा भ्रामक है जब से तुम 'तुलना कर रहे हैं पुनर्लेखन ^' (कुछ भी मेल खाते हैं) 'स्थान ~ पुनर्निर्देशन के साथ- यह/$ $ जो एक विशिष्ट regex से मेल खाता है। आपको इसे सुधारना चाहिए। लेकिन वैसे भी एक अच्छा सवाल है ... मैं उत्सुक हूं कि कौन सा तेजी से '/ test' या 'location ^/test' को फिर से लिखना है। – czerasz

उत्तर

22

जैसा कि nginx pitfalls में बताया गया है, आपको सर्वर ब्लॉक और return कथन का उपयोग करना चाहिए क्योंकि वे location ब्लॉक के माध्यम से RegEx का मूल्यांकन करने से अधिक तेज़ हैं।

जब से तुम एक 301 भेजने के लिए वहाँ कोई अंतर नहीं है जब यह है, btw एसईओ करने के लिए आता है पुनर्लेखन नियम के लिए मजबूर कर रहे हैं ..

+1

तो आप जो सुझाव दे रहे हैं वास्तव में, सर्वर ब्लॉक में सीधे 301 लौटाएं? उदाहरण 'सर्वर {server_name foo.com; वापसी 301 http: // $ server_name $ request_uri; } '? – tutuDajuju

+6

@tutuDajuju मैं सुझाव दूंगा कि आप 'रिटर्न 301 http: // $ host $ request_uri; 'बनाम' $ server_name' का उपयोग करें क्योंकि इसके परिणामस्वरूप मेजबान के विपरीत पहले परिभाषित सर्वर_नाम पर रीडायरेक्ट किया जाएगा। – mbeacom

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