كيفية إعادة تعيين صفحات .html إلى صفحات .aspx تلقائيًا؟

StackOverflow https://stackoverflow.com/questions/208246

  •  03-07-2019
  •  | 
  •  

سؤال

لدينا موقع على الانترنت.والتي كانت حتى الآن تحتوي على صفحات HTML فقط.الآن نقوم بإعادة تطويره في ASP .Net.

وهذا يعني أنه سيتم تغيير كافة صفحات .html إلى ملحق .aspx.المشكلة هي أن هناك الكثير من المراجع الخارجية لهذه الصفحات، ونحن لا نريد تغيير كل رابط إلى aspx على الفور.

هل هناك أي طريقة لإعادة توجيه الرابط إلى صفحات .html إلى صفحات .aspx؟على سبيل المثال، هل هناك أي طريقة يقوم بها الخادم بالتحقق من الملف المحدد، واكتشاف أنه يرتبط بصفحة .html ويفتح صفحة .aspx تلقائيًا؟

هل كانت مفيدة؟

المحلول

وإذا قمت بذلك نوعا من إعادة كتابة عنوان هل يمكن أن يكون كل الروابط تبقى نفسها وتخدم فقط حتى صفحة aspx يحصل تعيينها طلب index.html ولindex.aspx

وهنا ما تقول حول asp.net إعادة كتابة عنوان:

http://msdn.microsoft.com/en-us/library /ms972974.aspx

نصائح أخرى

أود أن أغتنم هذه الفرصة لترك الامتدادات (.html، .aspx، وما إلى ذلك) في الخلف.

بالنسبة لجميع مواقع الويب الرئيسية لدينا، نستخدم الآن نظام تعيين مخصص، حيث يتم تعيين URI للصفحة الافتراضية إلى صفحة .aspx (or.html) محددة.وهذا له بعض الفوائد:

  • يرى زوار موقعك عناوين URI "الأجمل"؛
  • لك مطلق الحرية في إعادة تنظيم موقعك على النحو الذي تراه مناسبًا، خلف الكواليس، دون تعطيل الروابط الواردة الحالية؛
  • يمكنك استخدام عناوين URI الافتراضية الديناميكية، على سبيل المثال بدلاً من /Product.aspx?p=Blah، يمكنك استخدام /Products/Blah

لدينا نظامنا المخصص، ولكنني أعتقد أن ASP.NET MVC يحتوي الآن على هذه الميزة المضمنة.

(إذا سلكت هذا المسار، فيمكنك إضافة تعيينات قديمة لعناوين URI بتنسيق .html التي تشير إلى صفحات .aspx الجديدة الخاصة بك).

وقد ترغب في النظر في مساحة الاسم ASP.NET System.Web.Routing، التي تم إضافتها في .NET Framework 3.5 SP1 أعتقد:

<وأ href = "http://blogs.msdn.com/mikeormond/archive/2008/05/14/using-asp-net-routing-independent-of-mvc.aspx" يختلط = "نوفولو noreferrer" > http://blogs.msdn.com/mikeormond/archive/2008/05/14/using-asp-net-routing-independent-of-mvc.aspx

http://msdn.microsoft.com/en -US / مكتبة / system.web.routing.aspx

وإليك كيف تعاملنا مع موقف مماثل.

  1. قم بإعداد IIS لتعيين امتداد html إلى ASP.Net بدلاً من التعامل معه مباشرة.

  2. في معالج HttpApplication.BeginRequest، تأكد مما إذا كان الطلب قد تم تقديمه لملف html تم ترحيله إلى aspx، وإذا كان الأمر كذلك، فقم بتقديم صفحة aspx بدلاً من ذلك عن طريق إعادة توجيه الاستجابة.

  3. في حالة عدم تعيين ملف html بعد، فما عليك سوى تقديم ملف html الثابت.

ومثل stusmith تطرق، يجب أن لا ندع أن يتعرض التكنولوجيا الأساسية الخاصة بك (وبالتأكيد لا تفرض) ما تبدو محددات الخاصة بك مثل. فإن أفضل طريقة هي على النحو المذكور أن لا تظهر أي ملحقات في كل شيء، ولكن في الوضع الحالي ربما كان من الممكن لتكوين النظام في مثل هذه الطريقة التي أتش تي أم أل وتصرف الملفات على كما لو كانوا .aspx اتصال؟

وأنا لا أعرف أي شيء عن صافي ولكن أفترض أن هذا أمر ممكن دون الحاجة إلى الذهاب من خلال الكثير من الأطواق.

وثاني أفضل نهج هو إعادة كتابة محددات، ولكن هذا يتطلب العمل الإضافي لخادم (ليس كثيرا، لكنه يضيف متابعة).

و(لا إعادة توجيه مع التحديث الفوقية. كل حل آخر هو أفضل.)

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