दिलचस्प पोस्ट
सबमिट करने से पहले ऐप के लिए iTunes लिंक प्राप्त करें नेस्टेड क्लास 'का दायरा? प्रत्येक फ़ील्ड / कुंजी के अनुसार अलग-अलग मानों का मोजोंगब गणक संख्या मैं सी # में फ़ाइल से संशोधित दिनांक कैसे प्राप्त करूं? विज़ुअल स्टूडियो 2015/2017 टेस्ट रनर मेरे xUnit v2 परीक्षणों की खोज क्यों नहीं कर रहा है HtmlUnit केवल GWT App के लिए होस्ट HTML पृष्ठ दिखाता है केवल प्रति उपयोगकर्ता एक बार पॉपअप प्रदर्शित करें मैं पृष्ठभूमि सेवा के रूप में एक नोड। Js ऐप कैसे चला सकता हूं? Asp.net mvc के लिए Ninject और फ़िल्टर विशेषता के साथ निर्भरता इंजेक्शन मुझे एक सी मॉलोक दावा करने की विफलता क्यों मिलती है? DTAssetProviderService सिम्युलेटर के साथ डीटीएक्स कनेक्शन शुरू नहीं कर सका क्या मुझे सी ++ में एक अपवाद विनिर्देशक का उपयोग करना चाहिए? कोर डेटा: एक इकाई के सभी उदाहरणों को हटाने का सबसे तेज़ तरीका एक शाखा से सभी कमानों को खींचें, निर्दिष्ट प्रतिबद्धता को दूसरे में दबाएं भरने के लिए एक अन्य चर का उपयोग करके घनत्व 2d प्लॉट (geom_tile के समान)?

मेरी PHP ऐप 404 त्रुटि क्यों नहीं भेजेगी?

if (strstr($_SERVER['REQUEST_URI'],'index.php')) { header('HTTP/1.0 404 Not Found'); } 

यह काम क्यों नहीं करते? मुझे एक रिक्त पृष्ठ मिलता है

Solutions Collecting From Web of "मेरी PHP ऐप 404 त्रुटि क्यों नहीं भेजेगी?"

आपका कोड तकनीकी रूप से सही है यदि आपने उस रिक्त पृष्ठ के शीर्षलेखों को देखा है, तो आपको एक 404 हेडर दिखाई देगा, और अन्य कंप्यूटर / प्रोग्राम फ़ाइल को नहीं मिलीं जैसे कि उस प्रतिक्रिया की सही पहचान कर पाएंगे।

बेशक, आपके उपयोगकर्ता अभी भी एसओएल हैं आम तौर पर, वेब सर्वर द्वारा 404 एस संभाला जाता है

  • उपयोगकर्ता: अरे, क्या आपके पास इस यूआरआई वेबसर्वर पर कुछ भी है?
  • वेबसर्वर: नहीं, मैं नहीं, 404! 404 के लिए प्रदर्शित करने के लिए यहां एक पृष्ठ है

समस्या यह है कि एक बार जब वेब सर्वर PHP पेज को प्रसंस्करण शुरू करता है, तो यह पहले से ही उस बिंदु को पार कर चुका है जहां यह 404 को संभालना होगा

  • उपयोगकर्ता: अरे, क्या आपके पास इस यूआरआई वेबसर्वर पर कुछ भी है?
  • वेबसर्वर: हाँ, मैं करता हूं, यह एक PHP पृष्ठ है। यह आपको बताएगा कि प्रतिक्रिया कोड क्या है
  • PHP: हे, ओएमजी 404 !!!!!!!
  • वेबसर्वर: खैर बकवास, 404 पृष्ठ लोग पहले से ही घर चले गए हैं, इसलिए मैं जो कुछ भी PHP मुझे दिया के साथ भेज देंगे

404 हेडर प्रदान करने के अलावा, PHP अब वास्तविक 404 पेज को आउटपुट करने के लिए ज़िम्मेदार है।

 if (strstr($_SERVER['REQUEST_URI'],'index.php')){ header('HTTP/1.0 404 Not Found'); echo "<h1>404 Not Found</h1>"; echo "The page that you have requested could not be found."; exit(); } 

यदि आप पिछले दो इको लाइनों को देखते हैं, तो वह जगह है जहां आप सामग्री देखेंगे। आप इसे इच्छित अनुकूलित कर सकते हैं।

यह सही व्यवहार है , यह 404 पृष्ठ के लिए सामग्री बनाने के लिए आपके ऊपर है
404 हेडर मकड़ियों और डाउनलोड-प्रबंधकों द्वारा यह निर्धारित करने के लिए उपयोग किया जाता है कि फ़ाइल मौजूद है या नहीं।
(404 शीर्ष लेख वाले पृष्ठ को Google या अन्य खोज-इंजनों द्वारा अनुक्रमित नहीं किया जाएगा)

सामान्य उपयोगकर्ता हालांकि http-headers को नहीं देखते हैं और सामान्य पृष्ठ के रूप में पृष्ठ का उपयोग करते हैं।

रिकॉर्ड के लिए, यह सभी-केस हैंडलर है:

 <?php header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); header("Status: 404 Not Found"); $_SERVER['REDIRECT_STATUS'] = 404; ?> <!-- 404 contents below this line --> 

डिफ़ॉल्ट सर्वर 404 लोड करें, अगर आपके पास एक है, उदाहरण के लिए एपाचे के लिए परिभाषित:

 if(strstr($_SERVER['REQUEST_URI'],'index.php')){ header('HTTP/1.0 404 Not Found'); readfile('404missing.html'); exit(); } 

चूंकि PHP 5.4 आप http_response_code(404); कर सकते हैं http_response_code(404);

@ किटेट के आधार पर एक अन्य समाधान,

 header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); header("Status: 404 Not Found"); $_SERVER['REDIRECT_STATUS'] = 404; //If you don't know which web page is in use, use any page that doesn't exists $handle = curl_init('http://'. $_SERVER["HTTP_HOST"] .'/404missing.html'); curl_exec($handle); 

यदि आप एक ऐसी वेबसाइट प्रोग्रामिंग कर रहे हैं जो एक सर्वर में होस्ट की गई है, तो आपके पास नियंत्रण नहीं है, आपको नहीं पता होगा कि "404missing.html" कौन सी फ़ाइल है हालांकि आप अभी भी ऐसा कर सकते हैं।

इस तरह, आपने समान सर्वर पर एक सामान्य 404 पृष्ठ का बिल्कुल यही परिणाम दिया है। एक पर्यवेक्षक किसी मौजूदा PHP पेज के बीच भेद करने में सक्षम नहीं होगा 404 और एक गैर-मौजूदा पृष्ठ।

इसके साथ प्रयास करें:

 header("Status: 404 Not Found"); header('HTTP/1.0 404 Not Found'); 

अलविदा!

थोड़ा छोटा संस्करण विषम गूंज को दबाएं

 if (strstr($_SERVER['REQUEST_URI'],'index.php')){ header('HTTP/1.0 404 Not Found'); exit("<h1>404 Not Found</h1>\nThe page that you have requested could not be found."); } 
 if($_SERVER['PHP_SELF'] == '/index.php'){ header('HTTP/1.0 404 Not Found'); echo "<h1>404 Not Found</h1>"; echo "The page that you have requested could not be found."; die; } 

कभी भी इको स्टेटमेंट को सरल नहीं करते हैं, और उपर्युक्त तरह अर्द्ध कोलन को कभी भी नहीं भूलते हैं, इसलिए पृष्ठ पर एक सबस्ट्रॉफ़्ट क्यों चलाते हैं, हम आसानी से php_self चला सकते हैं

यदि आप सर्वर के डिफ़ॉल्ट त्रुटि पृष्ठ को प्रदर्शित करना चाहते हैं, तो आपको इसे सर्वर में प्रबंधित करना होगा

आप इसे ठीक कर रहे हैं, हालांकि यह कुछ शोधन का उपयोग कर सकता है। ऐसा लगता है कि इस बात को संबोधित किया गया है तो चलो व्यावहारिक अनुप्रयोग लाभ बोलते हैं:

हमारे पास एक पुरानी वेबसाइट है जिसमें बहुभाषी तकनीकी दस्तावेज़ों का एक बड़ा संग्रह है यदि इसे सशर्त यदि एक सशर्त के अंदर निष्पादित कर रहा था:

  if (<no file found>){ die("NO FILE HERE"); } 

समस्या (बेकार संदेश और खराब उपयोगकर्ता अनुभव के अलावा) यह है कि हम आम तौर पर खराब लिंक और अनुपलब्ध दस्तावेजों को देखने के लिए एक लिंक क्रॉलर (हमारे मामले में अखंडता) का उपयोग करते हैं। इसका मतलब यह है कि हमें 200 त्रुटिपूर्ण प्रतिक्रिया पूरी तरह से सही बता रही थी कि वहां एक फाइल थी ईमानदारी को नहीं पता था कि हम एक पीडीएफ की उम्मीद कर रहे थे इसलिए हमें मैन्युअल रूप से PHP के साथ 404 हेडर जोड़ना पड़ा। मरने से ऊपर अपना कोड जोड़कर (क्योंकि बाद में कुछ भी निष्पादित नहीं होता और शीर्षलेख को हमेशा किसी भी तरह से प्रस्तुत किए गए html से पहले होना चाहिए), अखंडता (जो ब्राउज़र की तरह अधिक या कम व्यवहार करती है) 404 लौटाएगी और हमें पता चल जाएगा कि गायब कैसे दिखता है फ़ाइलें। उपयोगकर्ता को यह बताते हुए कि वहाँ एक त्रुटि है, लेकिन एक 404 त्रुटि देकर आप केवल ब्राउज़रों और ब्राउज़र की तरह ही त्रुटियों के कार्यक्रमों को सूचित नहीं कर रहे हैं, लेकिन (मुझे विश्वास है – अगर मुझे गलती है तो मुझे सही) भी बताएं। अपने सर्वर लॉग में उन त्रुटियों को रिकॉर्ड करना जहां आप आसानी से 404 के लिए grep कर सकते हैं

  header('HTTP/1.0 404 Not Found'); die("NO FILE HERE"); 

इसे इस्तेमाल करे:

 if (strstr($_SERVER['REQUEST_URI'],'index.php')) { header('HTTP/1.0 404 Not Found'); echo "<head><title>404 Not Found</title></head>"; echo "<h1>Not Found</h1>"; $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); echo "<p>The requested URL ".$uri." was not found on this server.</p>"; exit(); } 

तुम्हें पता है, मेरी वेबसाइट में मैंने ऐसा कुछ बनाया है:

  $uri=$_SERVER['REQUEST_URI']; $strpos=strpos($uri, '.php'); if ($strpos!==false){ $e404="The page requested by you: &quot".$_SERVER['REQUEST_URI']."&quot, doesn't exists on this server."; $maybe=str_replace('.php','',$uri); $maybe=str_replace('/','',$maybe); die("<center><h1>404</h1><hr><h3>$e404</h3><h3>Maybe try <a href=$maybe>www.leaveyortexthere.p.ht/$maybe</a>?</center>"); } 

मुझे उम्मीद है इससे आपको मदद मिली होगी।

मैं इस समस्या के लिए आया था .. मुझे लगता है कि आपके सर्वर पर एक गैर मौजूदा लिंक को पुन: निर्देशित करने की चाल हो सकती है! क्योंकि सर्वर उसकी 404 वापसी करेगा:
header('Redirect abbb.404.nonexist'); <कि निश्चित रूप से मौजूद नहीं है

यदि आप सर्वर का डिफ़ॉल्ट 404 पृष्ठ दिखाना चाहते हैं, तो आप इसे इस तरह एक फ़्रेम में लोड कर सकते हैं:

 echo '<iframe src="/something-bogus" width="100%" height="100%" frameBorder="0" border="0" scrolling="no"></iframe>';