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


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

<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 পেতে পারি। কিভাবে আমি এটিতে কাজ পেতে পারি?


10
2017-10-21 09:30


উত্স




উত্তর:


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

আপনি শুধুমাত্র URL টির সাথে মেলে, কোয়েরি স্ট্রিং ছাড়াই। এই পরিবর্তন করার জন্য আপনাকে প্রতিস্থাপন করতে হবে {REQUEST_URI} শর্তে {URL} এর। তারপরে শুধুমাত্র 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>

12
2017-10-22 09:24



মহান ব্যাখ্যা। আমি খুব মজাদার উদ্দেশ্যে QueryString উপেক্ষা করতে কিভাবে বিস্মিত ছিল। - dthrasher


ব্যবহার করার পরিবর্তে

<add input="{MyMap:{URL}}" pattern="(.+)" />

আপনি চেষ্টা করতে পারেন

<add input="{MyMap:{SCRIPT_NAME}}" pattern="(.+)" />

এখানে দেখো:

আইআইএস ইউআরএল রিভারাইট 2.0 এর সাথে কাজ করার জন্য স্ট্যাটিক পুনঃনির্দেশগুলি পেতে পারা যায় না


2
2017-11-02 19:05