PHP के साथ मैं $ _SERVER सरणी में "REDIRECT_STATUS" इंडेक्स देख सकता हूं लेकिन php.net इसका कोई उल्लेख नहीं करता है। मेरे पास एक कस्टम त्रुटि पृष्ठ है जो 404 फेंकता है लेकिन "REDIRECT_STATUS" अभी भी 200 है। तो स्थिति कोड वास्तव में क्या है?
उत्तर
मैंने कभी भी इस HTTP शीर्षलेख का उपयोग कभी नहीं किया है, लेकिन यूआरएल @ डैरेन द्वारा पोस्ट किए गए यूआरएल के बारे में मैं क्या समझ सकता हूं यह है कि आप अपनी सभी त्रुटियों को इंगित कर सकते हैं (वे त्रुटियां जो 4xx या 5xx HTTP शीर्षलेख में परिणाम देती हैं) पर सिर्फ एक php फ़ाइल। और उस PHP फ़ाइल में आप यह जान सकते हैं कि इस REDIRECT_STATUS HTTP शीर्षलेख तक पहुंचने से कौन सी विशिष्ट त्रुटि उत्पन्न होती है।
'REDIRECT_STATUS' एक" HTTP शीर्षलेख "नहीं है। HTTP अनुरोध शीर्षलेख '$ _SERVER' सरणी में 'HTTP_
php-src codedocumentation link पता चलता है, अर्थात्
<p>For more information as to <i>why</i> this behaviour exists,
see the <a href=\"http://php.net/security.cgi-bin\">\
manual page for CGI security</a>.</p>\n\
सीजीआई सुरक्षा के बारे में पढ़ने के लिए। REDIRECT_STATUS
चर के साथ - यह कोई HTTP शीर्षलेख नहीं है लेकिन एक चर जो वेब सर्वर से सीजीआई प्रोग्राम में पास किया गया है, इस मामले में php-cgi या php-fpm प्रक्रिया - आप php-cgi या php-fpm प्रक्रिया को बताते हैं अनुरोध को वेब सर्वर द्वारा नियंत्रित तरीके से संसाधित किया गया है और किसी भी तरह से, इन CGI स्क्रिप्ट को सीधे एक्सेस करके।
ऐतिहासिक रूप से आपने एक विशेष निर्देशिका में सीजीआई बाइनरी को संभालने के लिए वेब सर्वर को कॉन्फ़िगर किया - $DOCROOT/cgi-bin
जैसे कुछ - और आपने कुछ यूजी http://SERVERNAME/cgi-bin/
के माध्यम से सभी सीजीआई स्क्रिप्ट को सुलभ बनाया।
अब, अगर आप इस तरह के एक (प्रत्यक्ष) यूआरएल http://SERVERNAME/cgi-bin/php-cgi/PATH_TO_PHP_SCRIPT
के माध्यम से एक PHP सीजीआई प्रोग्राम कहते हैं, php-cgi के डिफ़ॉल्ट व्यवहार दस्तावेज़ /PATH_TO_PHP_SCRIPT
कार्रवाई करने के लिए वेब सर्वर का उपयोग नियंत्रण बाईपास सकता है और इस तरह। /PATH_TO_PHP_SCRIPT
दस्तावेज़ संसाधित हो जाएगा, हालांकि सर्वर/PATH_TO_PHP_SCRIPT को अस्वीकार कर सकता है, क्योंकि अनुरोध पहले ही वेब सर्वर छोड़ चुका है और PHP प्रक्रिया में प्रवेश किया है। PHP की सहायता से, ऐसा सर्वर जानकारी रिसाव करेगा और आपको सभी PHP स्क्रिप्ट के लिए एक और एक्सेस चेक लेयर की आवश्यकता होगी।
इस व्यवहार को रोकने के लिए आप सीधे अनुरोध में सेट करने के लिए REDIRECT_STATUS
हैडर सेट करने वाले अनुरोधों को संभालने के लिए PHP-CGI प्रोग्राम को कॉन्फ़िगर कर सकते हैं, जो बाहरी क्लाइंट के लिए असंभव है। केवल वेब सर्वर - क्लाइंट और PHP के बीच बीच में - यह हेडर सेट कर सकता है और वेब सर्वर एक HTTP स्थिति - जैसे कि 200, 404, 403 या आपको पसंद है - और PHP को इस स्थिति को संसाधित करने की अनुमति देता है। लेकिन इस हेडर का शुद्ध अस्तित्व भी PHP प्रक्रिया को सूचित करता है, कि अनुरोध वेब सर्वर द्वारा नियमित तरीके से संसाधित किया गया है।
राय: इस तरह के एक प्रयोग के खिलाफ की रक्षा करने के लिए बेहतर तरीका हो सकता है, वेब सर्वर करने के लिए डिफ़ॉल्ट/cgi-bin/पथ के माध्यम से पीएचपी सीजीआई को प्रत्यक्ष कॉल की अनुमति नहीं देने के लिए कॉन्फ़िगर करने।
- 1. PHP $ _SERVER के बराबर पाइथन क्या है?
- 2. PHP: $ _SERVER ['REDIRECT_URL'] बनाम $ _SERVER ['REQUEST_URI']
- 3. PHP: $ _SERVER चर: $ _SERVER '[' HTTP_HOST '] बनाम $ _SERVER [' SERVER_NAME ']
- 4. $ _SERVER ['PATH_INFO'] और $ _SERVER ['ORIG_PATH_INFO'] के बीच क्या अंतर है?
- 5. PHP $ _SERVER ['REMOTE_ADDR'] खाली
- 6. $ _SERVER ['PHP_SELF'] और $ _SERVER ['SCRIPT_NAME'] के बीच क्या अंतर है?
- 7. PHP $ _SERVER ['REMOTE_ADDR'] आईपीवी 6
- 8. क्या $ _SERVER ['HTTP_X_REQUESTED_WITH'] PHP में मौजूद है या नहीं?
- 9. $ _SERVER ['PHP_AUTH_USER'] खाली है
- 10. अपने आप पर $ _SERVER क्या करता है?
- 11. $ _SERVER ['HTTP_HOST']
- 12. $ _SERVER ['_'] विंडोज
- 13. जेएसपी या जावास्क्रिप्ट PHP के $ _SERVER ["HTTP_HOST"] के बराबर है?
- 14. PHP $ _SERVER ['DOCUMENT_ROOT'] को कहां सेट करना है?
- 15. $ _SERVER ["PHP_AUTH_USER"] और $ _SERVER ["PHP_AUTH_PW"] क्यों सेट नहीं हैं?
- 16. पीएचपी $ वैश्विक $ _SERVER
- 17. क्या यह $ _SERVER ['HTTP_USER_AGENT'] सेट करने के लिए संभव है?
- 18. $ _SERVER ['DOCUMENT_ROOT'] क्रॉन
- 19. क्रॉन जॉब $ _SERVER अंक
- 20. $ _SERVER ['REMOTE_ADDR'] को सत्यापित करना आवश्यक है?
- 21. कितना सुरक्षित $ _SERVER ["HTTP_HOST"] है?
- 22. $ _SERVER ['QUERY_STRING']
- 23. अपाचे mod_rewrite REDIRECT_STATUS स्थिति निर्देशिका सूची
- 24. $ _SERVER ['REMOTE_ADDR'] हमेशा जारी है()?
- 25. $ _SESSION बनाया गया है लेकिन $ _SERVER ['HTTP_COOKIE']
- 26. PHP: $ _SERVER ['HTTP_REFERER'] की समानता की जांच करने का सबसे अच्छा तरीका क्या है?
- 27. PHP - मैं $ _SERVER ['HTTP_REFERER'] से पैरामीटर मान कैसे प्राप्त करूं?
- 28. apache_request_headers() बनाम $ _SERVER
- 29. सुरक्षित PHP होस्ट नाम जानकारी - $ _SERVER ['HTTP_HOST'] वैकल्पिक
- 30. कोडिनेटर और $ _SERVER
[** 'इसे कुछ प्रकाश डालना चाहिए ** **] (http://www.php.net//manual/en/reserved.variables.server.php#105602) (php.net से लिया गया $ _SERVER मैनुअल) – Darren
हाँ मैंने देखा कि यह वास्तव में इस तरह से समझ में नहीं आता है कि मैं समझ सकता हूं। – billynoah
ये चर जो भी चल रहा है PHP से आते हैं ... आपके मामले में, शायद आपका वेब सर्वर। आप किस सर्वर का उपयोग कर रहे हैं? – Brad