هل هناك IIS الإعداد للتخلص من خارج '/' الأحرف في URL المطلوب?

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

سؤال

المشكلة العامة:

لدينا عناوين قادمة إلى IIS على ويب ملقمات تنسيق مثل:

http://www.server.com/page.aspx

ونحن نشهد أيضا أن عناوين مثل هذا قادمة:

http://www.server.com//page.aspx

نود أن نتخلص من هذا الإضافية مسار الحرف لأنه عندما يقوم المستخدم وكيل Internet Explorer, هذا هو حل من 2 صفحات مختلفة, وبالتالي, تحميل المحتوى مرتين عندما كان ينبغي أن تحل من ذاكرة التخزين المؤقت.

أنا لست متأكدا إذا كان هذا هو مشكلة يجب حلها مع شيء من هذا القبيل url-إعادة صياغة وحدة ، أو إذا كان هناك تكوين الإعداد.

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

المحلول

أعتقد أن المشكلة مع أي وليس IIS.

إعادة كتابة عنوان يشير عادة إلى عملية تعيين عنوان URL من http://example/shoes/clarkes إلى http://example/shoes.aspx?maker=clarkes على الملقم حيث أن المتصفح لا أعرف عن ذلك.

ما تحتاج إلى القيام به هو إعادة توجيه المتصفح من http://www.server.com//page.aspx إلى http://www.server.com/page.aspx باستخدام 301 Http رمز الاستجابة.

من الناحية النظرية:

كما يبدو أن استخدام ASP.NET الأكثر شفافية طريقة للقيام بذلك سيكون لكتابة HttpModule الذي يتحقق من ضعف مائلة في طلب URI و لا توجيه.

أسهل طريقة للقيام بذلك هو وضع بعض التعليمات البرمجية العالمية.ascx.(cs|vb) للتحقق من طلب URI على BeginRequest.

وفي كلتا الحالتين, رمز إلى القيام فحص سيكون نفسه.

عمليا:

قد يكون من أن IIS أو ASP.NET يبتلع ما يصل مزدوجة "/" قبل أن تحصل على فرصة لرؤية ذلك.إذا كان IIS ثم قد تضطر إلى استخدام بروكسي أمام IIS.إذا كان ASP.NET ثم كنت قد تكون قادرة على العثور على ملحق ISAPI التي سيتم القيام بهذه المهمة بالنسبة لك.

خيارات أخرى

يمكنك إما

  • تقسيم الصفحة حتى أن معظم الموارد الفردية يمكن أن يكون مؤقتا بشكل منفصل من محتوى html
  • تثقيف المستخدمين أنها لا تحتاج إلى وضع إضافية مائل في.

نصائح أخرى

إصلاح الروابط الخاصة بك!

أكثر من المرجح أن كنت ترى ضعف مائل لأن لديك خاطئة الروابط في الموقع الخاص بك ، إما الثابت تلوينها أو السيناريو التي تم إنشاؤها.فإنه من السهل أن تفعل هذا عن طريق الخطأ في البرنامج النصي الذي يسلسل http://example.com/ + /page.aspx.إيلاء اهتمام وثيق إلى تلك الأنواع من تسلسالت!

IIS يطهر إضافية مائلة و هذا لا يمكن معالجتها مع أي ASP.NET رمز أو HttpModule.اضافية مائلة لا تجعل حتى إلى ملف سجل IIS.أنا اختبرت باستخدام IIS7 و telnet و لا يمكن أن تحصل مائلة إضافية في سجل أو ASP.NET.

أنا لست متأكدا لماذا السؤال الأصلي ويبدو أن تنطوي على أي فقط.كل من IE و FF تسمح مائلة إضافية في عنوان URL و يبدو أن تنقل لهم ، على الرغم من أنني لم تستخدم علبة استنشاق للتحقق.

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