سؤال

لدي موقع ويب ASP.NET 2.0 يحتوي على صفحة 404 مخصصة.عندما لا يتم العثور على المحتوى، يعرض الموقع صفحة 404 المخصصة مع إضافة سلسلة استعلام aspxerrorpath=/mauro.aspx.يتم تقديم صفحة 404 نفسها مع HTTP حالة 200.لمحاولة حل هذا قمت بإضافة

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

لقد أضفت أداة Google ولدي مشكلتان بها.في إنترنت إكسبلورر 7 لا يتم عرضه حيث ينبغي.إذا أضفته إلى المحتوى، أحصل على "خطأ غير معروف" في الحرف 79 السطر 226 أو ما يقرب من ذلك؛إذا قمت بإضافته إلى قسم الرأس تظهر مربعات البحث أعلى المحتوى.في فايرفوكس يعمل بشكل جيد.

لذا فإن مشكلاتي هي:

  1. كيف أجعل القطعة تبدو مضمونة؟
  2. كيف يمكنني تقديم صفحة الخطأ كـ 404 مع الاسم الأصلي ومسار الملف المطلوب بحيث عندما أطلب mauro.aspx أحصل على المحتوى لصفحة 404 ، ولكن مع عنوان URL of mauro.aspx؟(أفترض أنه سأضطر إلى القيام البعض إعادة كتابة عنوان URL في ملف begin_request global.asax ، ولكنه أرغب في تأكيد ذلك قبل أن أفعل أي شيء سخيف.)
هل كانت مفيدة؟

المحلول 2

لقد تعاملت مع 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 فسيكون ذلك رائعًا!

نصائح أخرى

يوجد وضع إعادة توجيه جديد في ASP.NET 3.5 SP1 يمكنك الآن استخدامه حتى لا يقوم بإعادة التوجيه.يعرض صفحة الخطأ، لكنه يحافظ على عنوان URL كما هو:

"لطيف أيضًا لعمليات إعادة توجيه عناوين URL.إذا قمت بتعيين وضع إعادة التوجيه في web.config على "responseRewrite"، فيمكنك تجنب إعادة التوجيه إلى صفحة خطأ مخصصة وترك عنوان URL في المتصفح دون تغيير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top