2011-09-10 4 views

उत्तर

31

आप इसे किसी भी होस्ट नाम (यह नियम में हार्डकोड नहीं) के साथ काम करना चाहते हैं, तो आप इस तरह कुछ करना चाहता हूँ चाहते हैं:

<rule name="Remove www" stopProcessing="true"> 
    <match url="(.*)" ignoreCase="true" /> 
    <conditions logicalGrouping="MatchAll"> 
    <add input="{HTTP_HOST}" pattern="^www\.(.+)$" /> 
    </conditions> 
    <action type="Redirect" url="http://{C:1}/{R:0}" appendQueryString="true" redirectType="Permanent" /> 
</rule> 
रीडायरेक्ट एक्शन में

, {सी: 1} में स्थिति में दूसरा कैप्चरिंग समूह शामिल है, जबकि {R: 0} में नियम (पथ) में जो कुछ भी था। appendQueryString = "true" रीडायरेक्ट (यदि मौजूद है) में कोई क्वेरीस्ट्रिंग भी संलग्न करेगा। हालांकि, ध्यान रखें कि, अगर कोई यूआरएल हैश, प्रक्रिया में खो जाएंगे क्योंकि वे सर्वर पर नहीं जाते हैं।

+0

मैं पहले जवाब में हार्ड कोडित टुकड़े से कभी रोमांचित नहीं था, खुशी है कि मैं आखिरकार इस प्रश्न पर एक उत्तर चिह्नित कर सकता हूं। –

+3

क्या होगा यदि कोई https पर आता है? आप उन्हें स्वचालित रूप से http पर रीडायरेक्ट नहीं करना चाहते हैं, है ना? – jedmao

+0

@mrjedmao अच्छा बिंदु! मैं इसे देख लूंगा :) –

5

एक काम करना चाहिए निम्नलिखित:

<system.webServer> 
    <rewrite> 
    <rules> 
     <rule name="Remove WWW" stopProcessing="true"> 
     <match url="^(.*)$" /> 
     <conditions> 
      <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" /> 
     </conditions> 
     <action type="Redirect" url="http://www.example.com{PATH_INFO}" redirectType="Permanent" /> 
     </rule> 
    </rules> 
    </rewrite> 
</system.webServer> 
-1

एक रीडायरेक्ट कि दोनों http के लिए काम करते हैं और https होगा ऐसा करने के लिए निम्नलिखित इस्तेमाल किया जा सकता

<rewrite> 
     <rules> 
      <rule name="Lose the www" enabled="true" stopProcessing="true"> 
       <match url="(.*)" ignoreCase="true"/> 
       <conditions logicalGrouping="MatchAll"> 
        <add input="{HTTP_HOST}" pattern="^www\.(.*)$"/>      
       </conditions> 
       <action type="Redirect" redirectType="Permanent" url="{SchemeMap:{HTTPS}}://{C:1}/{R:1}" appendQueryString="true" /> 
      </rule> 
     </rules> 
     <rewriteMaps> 
      <rewriteMap name="SchemeMap"> 
       <add key="on" value="https" /> 
       <add key="off" value="http" /> 
      </rewriteMap> 
     </rewriteMaps> 
    </rewrite> 
2

आईआईएस आप के लिए स्वचालित रूप से यह करता है:

करें साइट> URL रीराइट> नया नियम> विहित होस्ट नाम :)

+0

सर्वोत्तम उत्तर पक्का। –

संबंधित मुद्दे