2010-07-26 10 views
7

मैं निम्नलिखितचलती IIS7 URL रीराइट web.config फ़ाइल

<rewrite> 
     <outboundRules> 
      <rule name="OutboundRewriteCatalogURL" preCondition="ResponseIsHtml1"> 
       <match filterByTags="A" pattern="^(.*/)Catalog\.aspx\?Catalog=([^=&amp;]+)&amp;(?:amp;)?Title=([^=&amp;]+)$" /> 
       <action type="Rewrite" value="{R:1}ctlg/{R:2}/{R:3}/" /> 
      </rule> 
      <rule name="OutboundRewriteCategoryURL" preCondition="ResponseIsHtml1"> 
       <match filterByTags="A" pattern="^(.*/)ProductList\.aspx\?Catalog=([^=&amp;]+)&amp;(?:amp;)?Category=([^=&amp;]+)&amp;(?:amp;)?Title=([^=&amp;]+)$" /> 
       <action type="Rewrite" value="{R:1}categ/{R:2}/{R:3}/{R:4}/" /> 
      </rule> 
      <rule name="OutboundRewriteFullProductURL" preCondition="ResponseIsHtml1"> 
       <match filterByTags="A, Form, Img" pattern="^(.*/)Product\.aspx\?Catalog=([^=&amp;]+)&amp;(?:amp;)?Category=([^=&amp;]+)&amp;(?:amp;)?Product=([^=&amp;]+)&amp;(?:amp;)?Title=([^=&amp;]+)$" /> 
       <action type="Rewrite" value="{R:1}prd/{R:2}-{R:3}-{R:4}/{R:5}/" /> 
      </rule> 
      <preConditions> 
       <preCondition name="ResponseIsHtml1"> 
        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" /> 
       </preCondition> 
      </preConditions> 
     </outboundRules> 
     <rules> 
      <rule name="RedirectCatalogURL" stopProcessing="true"> 
       <match url="^Catalog\.aspx$" /> 
       <conditions> 
        <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" /> 
        <add input="{QUERY_STRING}" pattern="^Catalog=([^=&amp;]+)&amp;Title=([^=&amp;]+)$" /> 
       </conditions> 
       <action type="Redirect" url="Catalog/{C:1}/{C:2}" appendQueryString="false" /> 
      </rule> 
      <rule name="RewriteCatalogURL" stopProcessing="true"> 
       <match url="^ctlg/([^/]+)/([^/]+)/?$" /> 
       <conditions> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="Catalog.aspx?Catalog={R:1}&amp;Title={R:2}" /> 
      </rule> 
      <rule name="RedirectCategoryURL" stopProcessing="true"> 
       <match url="^ProductList\.aspx$" /> 
       <conditions> 
        <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" /> 
        <add input="{QUERY_STRING}" pattern="^Catalog=([^=&amp;]+)&amp;Category=([^=&amp;]+)&amp;Title=([^=&amp;]+)$" /> 
       </conditions> 
       <action type="Redirect" url="categ/{C:1}/{C:2}/{C:3}" appendQueryString="false" /> 
      </rule> 
      <rule name="RewriteCategoryURL" stopProcessing="true"> 
       <match url="^categ/([^/]+)/([^/]+)/([^/]+)/?$" /> 
       <conditions> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="ProductList.aspx?Catalog={R:1}&amp;Category={R:2}&amp;Title={R:3}" /> 
      </rule> 
      <rule name="RedirectProductURL" stopProcessing="true"> 
       <match url="^Product\.aspx$" /> 
       <conditions> 
        <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" /> 
        <add input="{QUERY_STRING}" pattern="^Catalog=([^=&amp;]+)&amp;Category=([^=&amp;]+)&amp;Product=([^=&amp;]+)&amp;Title=([^=&amp;]+)$" /> 
       </conditions> 
       <action type="Redirect" url="prd/{C:1}-{C:2}-{C:3}/{C:4}" appendQueryString="false" /> 
      </rule> 
      <rule name="RewriteProductURL" stopProcessing="true"> 
       <match url="^prd/([^/]+)-([^/]+)-([^/]+)/([^/]+)/?$" /> 
       <conditions> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="Product.aspx?Catalog={R:1}&amp;Category={R:2}&amp;Product={R:3}&amp;Title={R:4}" /> 
      </rule> 
     </rules> 
    </rewrite> 

इसकी तरह सभी पुनर्लेखन नियम बहुत अच्छा और अच्छा काम कर रहा है, लेकिन मैं नहीं है कि मेरे web.config फ़ाइल में एक config अनुभाग बना दिया है से बाहर अनुभाग इन सभी चीजों को web.config फ़ाइल में नहीं रखना चाहते हैं, क्या बाहरी कॉन्फ़िगरेशन फ़ाइल में कॉन्फ़िगरेशन को फिर से लिखने का कोई तरीका है?

उत्तर

5

आप कई फाइलों में आपके विन्यास विभाजित है और मुख्य web.config फ़ाइल में भागों configSource विशेषता, जैसे का उपयोग कर शामिल कर सकते हैं:

web.config:

<system.web> 
    ... 
    <profile configSource="profile.config" /> 
    ... 
    </system.web> 

profile.config:

<profile> 
    <properties> 
    <add name="Name" type="String" /> 
    <add name="Age" type="Int32" /> 
    </properties> 
</profile> 

अधिक जानकारी के लिए this blog post या this question देखें।

+0

निखिलके के ब्लॉग का लिंक टूटा हुआ है, लेकिन वह आपको waybackmachine पर निर्देशित करता है। संग्रह से कार्यरत लिंक यहां दिया गया है: http://wayback.archive.org/web/20110917015737/http://www.nikhilk.net/Entry.aspx?id=158 – yzorg

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