2008-09-30 24 views
9

मुझे एक कस्टम 404 पृष्ठ के साथ एक एएसपी.NET 2.0 वेबसाइट मिली है। जब सामग्री नहीं मिलती है तो यह साइट कस्टम 404 पृष्ठ पर कार्य करती है जिसमें क्वेरी स्ट्रिंग एएसपीएक्सपीरपाथ =/mauro.aspx शामिल है। 404 पेज में ही 200 का एक HTTP स्थिति के साथ परोसा जाता है इस हल करने का प्रयास करने के लिए मैंGoogle 404 और .NET कस्टम त्रुटि पेज

protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.StatusCode = 404; 
    } 

जोड़ दिया है मैं गूगल विजेट शामिल किया और उसके साथ दो मुद्दे हैं। Internet Explorer 7 में यह प्रदर्शित नहीं करता है कि यह कहां होना चाहिए। अगर मैं इसे सामग्री में जोड़ता हूं, तो मुझे चार 79 लाइन 226 या वहां पर "अज्ञात त्रुटि" मिलती है; यदि मैं इसे मुख्य अनुभाग में जोड़ता हूं तो खोज बॉक्स सामग्री के ऊपर दिखाई देते हैं। फ़ायरफ़ॉक्स में यह ठीक काम करता है।

तो मेरी मुद्दे हैं:

  1. कैसे दिखाई देते हैं मैं विजेट कर सकता हूँ इनलाइन?
  2. मैं कैसे त्रुटि पृष्ठ मूल नाम और फ़ाइल होने का पथ के साथ एक 404 के रूप में प्रस्तुत करना कर सकता हूँ का अनुरोध किया है ताकि जब मैं mauro.aspx का अनुरोध मैं 404 पेज के लिए सामग्री मिलता है, लेकिन साथ mauro.aspx का यूआरएल? (मुझे लगता है मैं begin_request Global.asax फ़ाइल में कुछ URL rewriting करना होगा कि, लेकिन इस बात की पुष्टि इससे पहले कि मैं कुछ भी मूर्ख कर चाहते हैं।)

उत्तर

1

मैं ऐसा करके 404 संभाला है global.asax फ़ाइल में

protected void Application_BeginRequest(object sender, EventArgs e) 
{ 
    string url = Request.RawUrl; 
    if ((url.Contains(".aspx")) && (!System.IO.File.Exists(Server.MapPath(url)))) 
    { 
     Server.Transfer("/Error/FileNotFound.aspx"); 
    } 
} 

अब, अगर कोई भी Google विजेट के साथ मेरी मदद कर सकता है तो यह बहुत अच्छा होगा!

+3

इस प्रदर्शन महत्वपूर्ण है, तो आप जाँच कर रहे हैं यदि फ़ाइल मौजूद है या नहीं प्रत्येक अनुरोध पर हर बार। –

+0

सही, मैं परिणाम को एक शब्दकोश में संग्रहीत कर सकता हूं या तेजी से जांचने के लिए उपयोग कर सकता हूं ... – Mauro

10

एएसपी.नेट 3.5 एसपी 1 में एक नया रीडायरेक्ट मोड है जिसे आप अब उपयोग कर सकते हैं ताकि यह रीडायरेक्ट न हो। यह त्रुटि पृष्ठ दिखाता है, लेकिन यूआरएल को वही रखता है:

"यूआरएल रीडायरेक्ट के लिए भी अच्छा है। अगर आप रीडायरेक्ट मोड को web.config में" प्रतिक्रिया रिवाइट "पर सेट करते हैं तो आप एक कस्टम त्रुटि पृष्ठ पर रीडायरेक्ट से बच सकते हैं और छोड़ सकते हैं ब्राउज़र में यूआरएल छेड़छाड़ की। "

+0

धन्यवाद लेकिन हम इस उदाहरण में .NET 2.0 का उपयोग कर रहे हैं, लेकिन मैं .NET 3.5 SP1 जानकारी को दिमाग में रखूंगा। – Mauro

+0

शूट करें मैं वास्तव में क्षमा चाहता हूं, जब तक मुझे इसे पढ़ना समाप्त नहीं होता तब तक मुझे आपकी पोस्ट का 2.0 भाग भूल जाना चाहिए था। मेरी गलती। – mattlant

+0

कोई समस्या नहीं, मैं इसे भविष्य में 3.5 का उपयोग करने के लिए तर्क के रूप में उपयोग कर सकता हूं :) – Mauro

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