मेरे पास एक साइट है, जो लंबे समय तक, यूआरएल गलत होने पर उपयोगकर्ता को सीधे होमपेज पर रीडायरेक्ट करती है। 404 त्रुटि लौटाने के बजाय, स्क्रिप्ट ने header('location: /'); die();
का उपयोग किया।
मैंने उस लाइन को header("HTTP/1.0 404 Not Found");die();
में बदल दिया है और सर्वर ने 404 त्रुटि संदेश भेजना शुरू कर दिया है।
लेकिन, अब मुझे ब्राउजर 404 त्रुटि मिलती है, न कि मेरा कस्टम 404 पेज। तो, मैंने .htaccess फ़ाइल खोली है और जोड़ा है
ErrorDocument 404 /index.php
लेकिन कोई सफलता नहीं, मुझे अभी भी ब्राउज़र 404 पेज मिल रहा है, न कि मेरा 404 पेज (मैंने इसे /etc/apache2/sites-available/site-conf के तहत सेट करने का भी प्रयास किया है)
यह भी कोशिश की:
$_SERVER['REDIRECT_STATUS'] = 404;
header("HTTP/1.1 404 Not Found");
header('location: /');
die();
और फिर भी - कोई सफलता नहीं
कोई विचार?
3 जवाब
header("HTTP/1.1 404 Not Found");
include('index.php'); // maybe you have to adjust the path;
exit;
जब आप शीर्षलेख (स्थान) का उपयोग करते हैं तो आप स्थिति को 3xx पर सेट कर रहे होते हैं। और यदि स्थिति 404 है, तो ब्राउज़र को किसी स्थान शीर्षलेख का अनुसरण करने की आवश्यकता नहीं है। इसे केवल 3xx प्रतिक्रियाओं में स्थान शीर्षलेख का पालन करना चाहिए।
आप कुछ चीजें मिला रहे हैं।
जब आपकी स्क्रिप्ट चलती है, तो इसका मतलब है कि एक पेज है। अपनी स्क्रिप्ट के भीतर आप हेडर के माध्यम से स्थिति को नियंत्रित कर सकते हैं ("HTTP/1.1 404 नहीं मिला"); यह ब्राउज़र "नहीं मिला" कहता है। अंत में एक पृष्ठ 404 स्थिति के साथ परोसा जाता है। उस पृष्ठ का सभी आउटपुट त्रुटि पृष्ठ है। सब कुछ आपकी स्क्रिप्ट द्वारा किया जाता है।
जब आप एक htaccess फ़ाइल में 404 त्रुटि पृष्ठ परिभाषित करते हैं, तो यह पृष्ठ प्रदर्शित होता है यदि अपाचे सर्वर नहीं मिली त्रुटि को संभालता है। इसका मतलब है कि आपके ब्राउज़र को उस फ़ाइल तक पहुंचना है जो सर्वर पर मौजूद नहीं है। तब फ़ाइल index.php प्रदर्शित होती है।
शीर्ष लेख स्थिति और शीर्ष लेख स्थान का एक साथ उपयोग नहीं किया जा सकता है। एक स्थान कमांड स्थिति को रीडायरेक्ट कोड 3xx पर सेट करता है। पुनर्निर्देशन के बाद सर्वर कोड 200 के साथ पेज परोसता है।
आप क्या कर सकते हैं, क्लाइंट को अपने सर्वर पर एक यादृच्छिक यूआरएल पर रीडायरेक्ट करें। तो सर्वर 404 पेज प्रदर्शित कर रहा है।
पहले जांचें कि क्या आपके अपाचे कॉन्फ़िगरेशन में .htaccess फ़ाइलें सक्षम हैं (AllowOverride निर्देश)। आपके द्वारा प्रयास किया गया त्रुटि दस्तावेज़ काम करना चाहिए!
संबंधित सवाल
नए सवाल
php
PHP एक व्यापक रूप से उपयोग किया जाता है, उच्च-स्तरीय, गतिशील, वस्तु-उन्मुख, और व्याख्या की गई स्क्रिप्टिंग भाषा मुख्य रूप से सर्वर-साइड वेब विकास के लिए डिज़ाइन की गई है। PHP भाषा के बारे में सवालों के लिए इस्तेमाल किया।