2011-05-31 23 views
7

मैं एक सेमी का उपयोग कर रहा है, और फ़ाइल नहीं पाया त्रुटियों अलग अलग तरीकों से नियंत्रित किया जा सकता:404 पेज पर रीडायरेक्ट करें या 404 संदेश प्रदर्शित करें?

  1. पेज रीडायरेक्ट नहीं किया जाएगा, लेकिन एक त्रुटि-msg (डिफ़ॉल्ट लेआउट का उपयोग कर सामग्री के रूप में प्रदर्शित किया जाएगा मेनू/पाद लेख के साथ)।
  2. पृष्ठ को error.php पर रीडायरेक्ट किया जाएगा (पृष्ठ 1 जैसा दिखता है लेकिन पता बदल गया है)
  3. पृष्ठ को किसी मौजूदा पृष्ठ पर रीडायरेक्ट किया जाएगा, उदा। sitemap.php

क्या खोज इंजन के संबंध में पसंदीदा होने का कोई तरीका है, या इससे कोई फर्क नहीं पड़ता?

+0

प्रणाली है कि URL के इतिहास की एक पत्रिका रखता है और इसलिए पता होगा क्या वर्तमान सही URL है? यदि ऐसा है, तो बस एक आंतरिक पुनः निर्देशित करें और वर्तमान सामग्री प्रस्तुत करें। अन्यथा आपको 404 त्रुटि देना चाहिए (यही वह है)। – user212102

उत्तर

13

यदि यह नहीं मिला है, तो आपको 404 पृष्ठ जारी करना चाहिए। रीडायरेक्ट करने से 302 कोड का कारण बनता है, उसके बाद '200 ओके' होता है, जिसका अर्थ है कि कुछ सामग्री है। 404 फ्लैट आउट कहता है, "कोई फाइल नहीं है। मुझे बगिंग बंद करो"।

उचित हैडर कोड के साथ एक 404 पृष्ठ प्रस्तुत करते हैं कुछ इस तरह:

<?php 
if ($page_not_found) { 
    header('This is not the page you are looking for', true, 404); 
    include('your_404_page.php'); 
    exit(); 
} 
+0

शायद '404.php' स्क्रिप्ट में 'हेडर (...)' और 'निकास()' रखना बेहतर है। याद रखें कि क्या आप किसी फ़ंक्शन के माध्यम से अपना '404.php'' शामिल करते हैं, इसके मूल वैश्विक चर इसमें पहुंच योग्य नहीं होंगे। – Mowji

6

रीडायरेक्ट न करें।

खोज इंजन के बारे में भूल जाओ। यदि मैं एक यूआरएल टाइप करता हूं और एक छोटा टाइपो बना देता हूं और आप मुझे रीडायरेक्ट करते हैं, तो मुझे पूरी चीज फिर से टाइप करनी होगी।

पृष्ठ को पुनर्निर्देशित नहीं किया जाएगा, लेकिन एक त्रुटि-संदेश सामग्री के रूप में प्रदर्शित किया जाएगा (मेनू/पाद लेख के साथ डिफ़ॉल्ट लेआउट का उपयोग करके)।

यह स्पष्ट करने का प्रयास करें कि यह एक त्रुटि पृष्ठ है। यह भी को सामान्य पृष्ठ की तरह दिखना नहीं चाहिए।

पेज error.php पुनः निर्देशित किया जाएगा, सच

नहीं। (पेज एक ही तरह 1. लेकिन पता बदल गया दिखता है) वास्तव में कोई।

पृष्ठ को किसी मौजूदा पृष्ठ पर रीडायरेक्ट किया जाएगा, उदा। sitemap.php

HTTP में कुछ पुनर्निर्देशन स्थिति कोड हैं, उनमें से कोई भी "नहीं मिला है, लेकिन आपको इसके बजाय यह पसंद हो सकता है"।

+1

रीडायरेक्ट्स में आपके स्थान पट्टी में यूआरएल को फिर से लिखे जाने की आवश्यकता नहीं है। उदाहरण के लिए, वेब पर 404 पृष्ठों का विशाल बहुमत लें। दरअसल, विकल्प (2) बायाद है। –

+0

एक अच्छा बिंदु है। – Ilyssis

+1

चूंकि सवाल सर्वर और क्लाइंट के बीच बातचीत के बारे में था, ऐसा लगता है कि यह एक HTTP पुनर्निर्देशन के बारे में बात कर रहा है। एक आंतरिक रीडायरेक्ट जो क्लाइंट को किसी भी तरह से उजागर नहीं किया जाता है, इससे कोई फर्क नहीं पड़ता। – Quentin

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