404 पृष्ठ पर 301 पुनर्निर्देशित करें या 404 पर स्थिति कोड सेट करें और पृष्ठ पर रहें?


9

मेरी वेबसाइट पर मेरे कई पृष्ठ हैं, जो केवल प्रशासक ही इन पेजों तक पहुँच सकते हैं और इन तक पहुँच दी जाती है यदि एक सही मूल्य और सही तरीके से सेट होने पर एक querystring मान दिया जाए। उदाहरण के लिए:

http://www.mydomain.com/show-daily-statistics?key=abc


उपरोक्त लिंक पृष्ठ की सामग्री को दिखाएगा लेकिन कुछ और जैसे नीचे नहीं होगा:

http://www.mydomain.com/show-daily-statistics


अब मैं सोच रहा था कि यदि खोज इंजन और / या गैर-व्यवस्थापक उपयोगकर्ता किसी तरह से इन छिपे हुए पृष्ठों पर उतरें तो क्या करें।

मैं निश्चित रूप से या तो पृष्ठ की स्थिति कोड को 404 में बदल सकता हूं या फिर 301 को पुनर्निर्देशित कर सकता हूं:

http://www.mydomain.com/404-error


Google और SEO के संबंध में सबसे अच्छा समाधान क्या है?


6
मैं इसके बजाय वास्तविक प्रमाणीकरण को लागू करने पर विचार करूंगा, यदि आप जिस जानकारी को छिपाने की कोशिश कर रहे हैं उसका कोई महत्व नहीं है। इसके अलावा, एक 301 पुनर्निर्देशित शब्दार्थ इंगित करता है कि सामग्री स्थानांतरित हो गई है जो यहां मामला नहीं है और इसलिए यह एक अनुचित प्रतिक्रिया है।
आप

जवाबों:


11

सही कोड 401 नहीं अधिकृत होगा

HTTP विनिर्देशों के अनुसार

10.4.2 401 अनधिकृत

अनुरोध को उपयोगकर्ता प्रमाणीकरण की आवश्यकता है। अनुरोधित संसाधन पर लागू चुनौती के साथ प्रतिक्रिया के लिए डब्ल्यूडब्ल्यूडब्ल्यू-ऑथेंटिकेट हेडर फील्ड (सेक्शन 14.47) शामिल होना चाहिए। क्लाइंट MAY एक उपयुक्त प्राधिकरण शीर्ष लेख फ़ील्ड (खंड 14.8) के साथ अनुरोध को दोहराता है। यदि अनुरोध में पहले से ही प्राधिकरण क्रेडेंशियल शामिल हैं, तो 401 प्रतिक्रिया इंगित करती है कि उन क्रेडेंशियल्स के लिए प्राधिकरण से इनकार कर दिया गया है। यदि 401 प्रतिक्रिया में पूर्व प्रतिक्रिया के समान चुनौती है, और उपयोगकर्ता एजेंट ने पहले से ही कम से कम एक बार प्रमाणीकरण का प्रयास किया है, तो उपयोगकर्ता को उस इकाई को प्रस्तुत किया जाना चाहिए जो प्रतिक्रिया में दी गई थी, क्योंकि उस इकाई में प्रासंगिक नैदानिक ​​जानकारी शामिल हो सकती है। HTTP एक्सेस ऑथेंटिकेशन को "HTTP ऑथेंटिकेशन: बेसिक एंड डाइजेस्ट एक्सेस ऑथेंटिकेशन" [43] में समझाया गया है।

या वैकल्पिक रूप से

10.4.4 403 निषिद्ध

सर्वर अनुरोध को समझ गया, लेकिन इसे पूरा करने से इनकार कर रहा है। प्राधिकरण मदद नहीं करेगा और अनुरोध को दोहराया नहीं जाना चाहिए। यदि अनुरोध विधि HEAD नहीं थी और सर्वर यह सार्वजनिक करना चाहता है कि अनुरोध क्यों पूरा नहीं हुआ है, तो यह इकाई में इनकार के कारण का वर्णन करेगा। यदि सर्वर क्लाइंट को यह जानकारी उपलब्ध नहीं कराना चाहता है, तो इसके बजाय स्थिति कोड 404 (नहीं मिला) का उपयोग किया जा सकता है।

ये दोनों शब्दार्थ से अधिक सही हैं 404। संसाधन मौजूद है इसलिए 404सही नहीं है। 401सही होना चाहिए, लेकिन आपको प्रमाणीकरण की आवश्यकता नहीं है। अस्पष्टता से सुरक्षा सुरक्षा नहीं है। 403यह भी सही है क्योंकि अनुरोध को समझा जाता है, संसाधन मौजूद है यह अनुरोध को सेवा देने से इंकार करता है। 404उचित है यदि आप प्रकट नहीं करना चाहते हैं कि क्यों 403हो रहा है।

किसी भी स्थिति में 301पुनर्निर्देश उचित नहीं हैं , संसाधन स्थानांतरित नहीं हुआ है।


2
गूगल नहीं सूचकांक और 401/403 स्थिति संदेश लौटने हटा पृष्ठों, एक करता है इसी तरह सवाल थोड़ी देर वापस लिए कहा गया था वैकल्पिक रूप से आप हमेशा सकता है एक सरल नोइंडेक्स का उपयोग और ब्लॉक का उपयोग robots.txt
साइमन हैटर

1
@ WPRookie82 इसे गुप्त रखकर पृष्ठ की सुरक्षा के बारे में - आप इसे गलत कर रहे हैं।
Cululhu

4
अस्पष्टता से सुरक्षा बिल्कुल भी सुरक्षा नहीं है

1
HTTP बेसिक या डाइजेस्ट कोर (या अन्य RFC2617- संगत स्कीम) के अलावा अन्य प्रमाणीकरण विधियों के लिए 401 के उपयोग पर पहले भी चर्चा की जा चुकी है ; उस समय मेरी राय, जो मैं अभी भी खड़ा हूं, यह है कि यह व्यवहार में काम कर सकता है , लेकिन यह वास्तव में HTTP कल्पना के अनुसार मान्य नहीं है, और यह कि किसी भी मामले में, 403 या 404 भी बेहतर होगा।
इल्मरी करोनें

1
मैं अन्य टिप्पणियों से सहमत हूं कि 401 अनधिकृत HTTP कल्पना के अनुसार अनुचित है।
स्टीफन Ostermiller

1

चूंकि यह "कुंजी" पैरामीटर के साथ या इसके बिना प्रशासकों के लिए एक पृष्ठ है, इसलिए पेजों को अनुक्रमित नहीं किया जा सकता है और न ही किया जाना चाहिए। इसलिए गैर-व्यवस्थापक के लिए वेबपेज 404 स्टेटस कोड भेज सकता है, और आप उसी URL को बरकरार रख सकते हैं। पुनर्निर्देशित न करें, क्योंकि आप Google को बताते हैं कि पृष्ठ स्थानांतरित हो गया है, लेकिन फिर ऐसे पृष्ठ पर मौजूद नहीं है।

ऐसा ही Google भी करता है। जब आप किसी डमी पृष्ठ पर जाते हैं तो देखें: http://www.google.com/analytics/asdsas


मेरी उपरोक्त पोस्ट के लिए एक छोटा सा सुधार http://www.example.com/404-errorमौजूद है, यह पूरी वेबसाइट का एक प्रकार का वैश्विक 404 पृष्ठ है, इसलिए मैं घाव को गैर-बाहर करने वाले पृष्ठ पर पुनर्निर्देशित नहीं कर सकता हूं।
WPRookie82

@ WPRookie82: जहां तक आपके और आपके वेबसर्वर को छोड़कर किसी का संबंध है, गैर-मौजूद पृष्ठ और मौजूदा पृष्ठ के बीच कोई अंतर नहीं है जो 404 प्रतिक्रिया देता है।
इल्मरी करोनें

1

इस स्थिति के लिए HTTP सही कोड प्रतिक्रिया 403 निषिद्ध होगी :

सर्वर अनुरोध को समझ गया, लेकिन इसे पूरा करने से इनकार कर रहा है। प्राधिकरण मदद नहीं करेगा और अनुरोध को दोहराया नहीं जाना चाहिए। यदि अनुरोध विधि HEAD नहीं थी और सर्वर यह सार्वजनिक करना चाहता है कि अनुरोध क्यों पूरा नहीं हुआ है, तो यह इकाई में इनकार के कारण का वर्णन करेगा। यदि सर्वर क्लाइंट को यह जानकारी उपलब्ध नहीं कराना चाहता है, तो इसके बजाय स्थिति कोड 404 (नहीं मिला) का उपयोग किया जा सकता है।

(हालांकि 403 प्रतिक्रिया की परिभाषा में कहा गया है कि "प्राधिकरण मदद नहीं करेगा", IMO को विशेष रूप से HTTP बेसिक / डाइजेस्ट प्रमाणीकरण के संदर्भ में समझा जाना चाहिए , जिसके लिए स्थिति कोड 401 अनधिकृत का उपयोग किया जाना चाहिए। क्योंकि आप उपयोग नहीं कर रहे हैं। उन प्रमाणीकरण विधियों में से कोई भी, 403 आपके मामले में उपयुक्त स्थिति कोड है।)


हालांकि, एक 403 स्थिति कोड का उपयोग कर (या कम से कम दृढ़ता से तात्पर्य है) तथ्य यह है कि वहाँ से पता चलता है है , उस URL वाला पेज भले ही सर्वर इसे वितरित करने के लिए मना कर रहा है। यह कुछ ऐसा है कि आप संभावित घुसपैठियों से छुपाने के लिए चाहते हो सकता है है के रूप में, HTTP / 1.1 मानक स्पष्ट रूप से अनुमति देता है 404 नहीं मिला स्थिति कोड के बजाय वापस करने ( जोर मेरा):

सर्वर को अनुरोध-यूआरआई से मेल खाते हुए कुछ भी नहीं मिला है। कोई संकेत नहीं दिया जाता है कि क्या स्थिति अस्थायी या स्थायी है। 410 (गया) स्थिति कोड SHOULD का उपयोग किया जाना चाहिए यदि सर्वर को पता है, कुछ आंतरिक रूप से कॉन्फ़िगर करने योग्य तंत्र के माध्यम से, कि एक पुराना संसाधन स्थायी रूप से अनुपलब्ध है और इसका कोई अग्रेषण पता नहीं है। यह स्थिति कोड आमतौर पर तब उपयोग किया जाता है जब सर्वर यह बताना नहीं चाहता कि अनुरोध को अस्वीकार क्यों किया गया है, या जब कोई अन्य प्रतिक्रिया लागू नहीं होती है।

बेशक, इस तरह के छिपाव को प्रभावी बनाने के लिए, आपके द्वारा लौटाए जाने वाले 404 त्रुटि पृष्ठ को वास्तविक गैर-मौजूद पृष्ठों के लिए वापस आने के समान दिखाई देने की आवश्यकता है । अन्यथा, यह केवल सबसे बेवकूफ और सबसे आकस्मिक हमलावरों को बेवकूफ बना देगा। (यदि आपका लक्ष्य केवल Google के सूचकांक से पृष्ठों को बाहर रखना है, तो 403 प्रतिक्रिया ऐसा ही करेगी।)


आपके प्रश्न में सुझाई गई अन्य संभावित प्रतिक्रियाओं और अन्य उत्तरों के बारे में क्या?

जैसा कि मैंने पहले उल्लेख किया है, मुझे विश्वास नहीं है कि यहां 401 प्रतिक्रिया उपयुक्त है। यह व्यवहार में काम कर सकता है , अधिकांश ब्राउज़रों और खोज इंजनों के रूप में इनफ़ॉगर किसी भी विकृत या गैर-मान्यता प्राप्त 4 xx श्रृंखला प्रतिक्रिया कोड का इलाज करेगा जैसे कि यह 404 था, लेकिन यह अभी भी HTTP कल्पना के अनुसार मान्य नहीं है, और इसे पसंद करने का कोई व्यावहारिक कारण नहीं है। 403 या 404 से अधिक।

301 (या 302) का उपयोग करके एक अलग "404 त्रुटि" पृष्ठ पर पुनर्निर्देशित करें, यह एक भयानक अभ्यास है जो मैला मोड_ब्राइट ट्यूटोरियल्स द्वारा फैलाया गया है, और सीधे 404 प्रतिक्रिया वापस करने की तुलना में बिल्कुल कोई रिड्यूसिंग सुविधाएँ नहीं हैं:

  • यह आगंतुकों के लिए भ्रामक है, क्योंकि वे जिस URL पर जाने का प्रयास कर रहे थे , वह त्रुटि पृष्ठ के URL से बदल जाता है। इस प्रकार, वे एक संदेश को यह कहते हुए देखते हैं कि वे एक गैर-मौजूद पृष्ठ पर पहुंच गए हैं, लेकिन कोई भी आसानी से दिखाई देने वाला संकेत नहीं है कि वे जिस पृष्ठ पर जाने का प्रयास कर रहे थे, और वह आसानी से URL में किसी भी स्पष्ट टाइपो को ठीक करने जैसी किसी भी पुनर्प्राप्ति रणनीति का प्रयास नहीं कर सकता है, या इसे Google या Wayback मशीन में कॉपी-पेस्ट करना।

  • यह खोज इंजनों को भ्रमित कर सकता है, खासकर यदि आपका 404 पृष्ठ robots.txt में अस्वीकृत है , या यदि यह गलत तरीके से वास्तविक 404 स्थिति कोड ( "सॉफ्ट 404" ) के बजाय 200 ओके प्रतिक्रिया देता है , तो संभवतः आपका 404 पृष्ठ खोज में दिखाई देगा। यादृच्छिक खोज शब्दों के लिए परिणाम।

  • यह आपके सर्वर पर अतिरिक्त लोड (कम मात्रा) का कारण बनता है, आगंतुकों के लिए प्रतिक्रिया समय बढ़ाता है और संभावित रूप से आपकी साइट को क्रॉल करने वाले खोज इंजन को धीमा कर देता है, क्योंकि अब एक गैर-मौजूद (या छुपा हुआ) पृष्ठ के लिए हर अनुरोध में एक अतिरिक्त HTTP दौर शामिल है- ट्रिप।

  • इसका कोई एसईओ लाभ नहीं है, क्योंकि 404 पृष्ठ पर पुनर्निर्देशित पृष्ठों के किसी भी "लिंक जूस" को वैसे भी खो दिया जाता है।

(निश्चित रूप से, एक स्थिति जहां आप 404 प्रतिक्रिया के बजाय 301 रीडायरेक्ट का उपयोग करना चाहते हैं, जब पृष्ठ वास्तव में स्थानांतरित हो गया है, और आप आगंतुक को उसके सही स्थान पर पुनर्निर्देशित कर सकते हैं। लेकिन यह मामला यहां चर्चा नहीं है।)


अंत में, मैं यहां कई टिप्पणियों में व्यक्त की गई भावना को प्रतिध्वनित करना चाहूंगा, कि आपके व्यवस्थापक पृष्ठों को इस तरह "छिपाना" उचित पासवर्ड-आधारित प्रमाणीकरण के लिए पर्याप्त विकल्प नहीं है । कहा कि, यदि आपके पास पहले से ही एक सुरक्षित प्रमाणीकरण प्रणाली स्थापित है, तो पन्नों को छिपाना एक अतिरिक्त परत के रूप में उपयोगी हो सकता है, भले ही गहराई दृष्टिकोण में एक रक्षा में काफी कमजोर हो ।


मैंने अंत में यह चुनने का फैसला किया कि आपने दूसरे भाग में क्या सुझाव दिया है। जो कोई वैध कुंजी के बिना पृष्ठ पर उतरता है, वह मेरे नियमित 404 पृष्ठ को देखेगा और मैं निश्चित रूप से प्रक्रिया में स्थिति कोड 404 वापस कर रहा हूं।
WPRookie82

1

मैं उन noindex,nofollow,noarchiveपृष्ठों के सिर में एक टैग का उपयोग करूँगा जिन्हें आप खोज से बाहर निकालना चाहते हैं।

मैंने पाया है कि noarchiveटैग बहुत जल्दी खोज से बाहर हो जाता है, जबकि noindexयह खोज में आना बंद हो सकता है, लेकिन अगर यह पहले से ही वहाँ है, तो आपको इसे खोज परिणामों से बाहर करने की आवश्यकता है।

व्यवस्थापक पहुंच प्रश्न के लिए, यहां के अन्य लोगों ने पहले ही सुरक्षा के बारे में कुछ सलाह दी हैं जिन्हें मैं जांचने की सलाह दूंगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.