باستخدام IIS6، كيف يمكنني وضع الملفات في مجلد فرعي مع عرضها كما لو كانت في الجذر؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

يحتوي موقع ASP.NET 3.5 الخاص بنا الذي يعمل على IIS 6 على فريقين يقومان بإضافة المحتوى:

  • فريق التطوير يضيف الكود
  • يضيف فريق العمل صفحات ويب بسيطة.

من أجل السلامة والتنظيم، نود أن يقوم فريق العمل بإضافة صفحات الويب الخاصة بهم إلى مجلد فرعي في المشروع:

جذر:لصفحات فريق التطوير

محتوى:لصفحات فريق العمل

لكن

نود أن يتمكن المستخدمون من الانتقال إلى محتوى فريق العمل دون الحاجة إلى إلحاق "المحتوى" في عناوين URL الخاصة بهم، كما هو موضح أدناه:

جذر:الافتراضي.aspx (متواجد في:www.oursite.com/default.aspx)

محتوى:الفشار.aspx (متواجد في:www.oursite.com/popcorn.aspx)

هل هناك طريقة يمكننا إنجازها لإجراء إدخال تكوين في أداة إعادة كتابة ISAPI لكل صفحة من هذه الصفحات؟

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

المحلول

ليس لدي أي طريقة لاختبار ذلك الآن، ولكن أعتقد أنه يمكنك استخدام العلامة -f على RewriteCond للتحقق من وجود الملف في أي من الدليلين.

RewriteCond %{REQUEST_FILENAME} -!f
RewriteCond Content/%{REQUEST_FILENAME} -f
RewriteRule (.*) Content/(.*)

شيء من هذا القبيل قد يفعل ما تبحث عنه أيضًا.

نصائح أخرى

وبما أن الامتدادات ستكون ASPX، فإن ASP.NET سوف يلتقط الطلب...يمكنك كتابة HttpModule الذي يتحقق من الصفحات التي تنتج 404 ثم يتحقق من المجلد الفرعي أيضًا.

إذا كنت تعلم أن جميع الصفحات ذات تنسيق معين ستأتي من هذا المجلد، فيمكنك فقط إعادة كتابة عنوان URL في ASP.NET (إما في Global.asax أو HttpModule).

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