Ho fatto una sezione di configurazione nel mio file web.config che ha tutte le regole di riscrittura come la seguenteMoving sezione URL Rewrite IIS7 fuori del file web.config
<rewrite>
<outboundRules>
<rule name="OutboundRewriteCatalogURL" preCondition="ResponseIsHtml1">
<match filterByTags="A" pattern="^(.*/)Catalog\.aspx\?Catalog=([^=&]+)&(?:amp;)?Title=([^=&]+)$" />
<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;)?Category=([^=&]+)&(?:amp;)?Title=([^=&]+)$" />
<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;)?Category=([^=&]+)&(?:amp;)?Product=([^=&]+)&(?:amp;)?Title=([^=&]+)$" />
<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=([^=&]+)&Title=([^=&]+)$" />
</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}&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=([^=&]+)&Category=([^=&]+)&Title=([^=&]+)$" />
</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}&Category={R:2}&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=([^=&]+)&Category=([^=&]+)&Product=([^=&]+)&Title=([^=&]+)$" />
</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}&Category={R:2}&Product={R:3}&Title={R:4}" />
</rule>
</rules>
</rewrite>
è molto bello e di lavoro buono, ma ho non voglio avere tutte queste cose nel file web.config, c'è un modo per avere la configurazione di riscrittura in un file di configurazione esterno?
Il collegamento al blog di NikhilK è interrotto, ma lui ti indirizza a Waybackmachine. Ecco il link di lavoro dall'archivio: http://wayback.archive.org/web/20110917015737/http://www.nikhilk.net/Entry.aspx?id=158 – yzorg