আইআইএস পুনর্লিখন, মানচিত্র এবং ক্যোয়ারী স্ট্রিংগুলি পুনরায় লিখুন


10

পুনরায় লেখার মানচিত্রগুলি বুঝতে দয়া করে আমাকে সহায়তা করুন, আমার এই সেটআপটি রয়েছে:

<rewriteMap name="MyMap">
   <add key="/pages" value="/website/pages/index.aspx" />
   <add key="/pages/page-1" value="/website/pages/page-1/index.aspx" />
   <add key="/pages/page-1/section-1" value="/website/pages/page-1/section-1.aspx" />
</rewriteMap>

আমার নিয়মটি এখানে:

<rule name="Rewrite rule for MyMap" stopProcessing="true">
   <match url=".*" />
   <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
      <add input="{MyMap:{REQUEST_URI}}" pattern="(.+)" />
   </conditions>
   <action type="Rewrite" url="{C:1}" appendQueryString="true" />
</rule>

আমি এই পৃষ্ঠাগুলি অ্যাক্সেস করার চেষ্টা করলে এটি কাজ করছে:

  • www.mydomain.com/pages (ঠিক আছে)
  • www.mydomain.com/pages/page-1 (ঠিক আছে)
  • www.mydomain.com/pages/page-1/section-1 (ঠিক আছে)

তবে আমি এই পৃষ্ঠাগুলির যে কোনও একটিতে কোয়েরি স্ট্রিং যুক্ত করার সম্ভাবনাটি চাই, উদাহরণস্বরূপ:

  • www.mydomain.com/pages?page=1 (FAIL)

আমি যখন এই পৃষ্ঠাটি অ্যাক্সেস করার চেষ্টা করি তখন আমি একটি 404 পাই I আমি কীভাবে এটি কাজ করতে পারি?

উত্তর:


12

ডিফল্টরূপে পুনর্লিখনের মানচিত্র ব্যবহার করে ইউআরএল পুনর্লিখনের নিয়মগুলি {REQUEST_URI} ভেরিয়েবলের সাথে মিলছে । এটিতে ইউআরএল + ক্যোয়ারী স্ট্রিং রয়েছে। এটি আপনাকে কোয়েরি স্ট্রিং প্যারামিটারগুলির সাথে ইউআরএলগুলির সাথে মেলে এবং অন্য পৃষ্ঠাগুলিতে পুনর্লিখনের অনুমতি দেয়। খুব সহজ তবে এটি আপনার যা প্রয়োজন / প্রয়োজন তা স্পষ্টতই নয়।

আপনি কোয়েরি স্ট্রিং ছাড়াই কেবলমাত্র ইউআরএল এর বিপরীতে মিল করতে চান। অর্ডার এটি পরিবর্তন করতে আপনি প্রতিস্থাপন আছে {REQUEST_URI} করতে অবস্থায় {URL} এর । তারপরে পুনরায় লেখার মানচিত্রের সাথে কেবল ইউআরএল (কোয়েরি স্ট্রিং ছাড়াই) মিলবে। এরপরে আপনি পুনরায় লিখিত URL এ ক্যোয়ারী স্ট্রিং যুক্ত করতে পারেন যাতে মৃত্যুদন্ড কার্যকর হওয়া স্ক্রিপ্টটিতে এখনও এর অ্যাক্সেস থাকে।

আপনি এখানে একটি নিয়ম দিয়ে শেষ:

<rule name="Rewrite rule for MyMap">
    <match url=".*" />
    <conditions>
        <add input="{MyMap:{URL}}" pattern="(.+)" />
    </conditions>
    <action type="Rewrite" url="{C:1}" appendQueryString="true" />
</rule>

1
দুর্দান্ত ব্যাখ্যা। আমি ভাবছিলাম কীভাবে ম্যাচের উদ্দেশ্যে কীভাবে ক্যুরিস্ট্রিং উপেক্ষা করা যায়।
dthrasher

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.