/ / web.config pravidlo prepisovania ciest - .net, iis, prepisovanie url, web-config

web.config prepisovanie pravidiel pre cesty - .net, iis, url-rewriting, web-config

Snažím sa vytvoriť pravidlo prepisovania v web.config, ktoré bude mať adresu URL, napríklad http://example.org/MySite a jednoducho ich presmerujem späť na koreňovú stránku, ako napríklad http://example.org.

Mali by ignorovať aj konkrétne priečinky, ako napríklad http://example.org/css alebo http://example.org/js.

<rewrite>
<rules>
<rule name="enquiry" stopProcessing="true">
<match url="http://example.org/^$" /> <!-- Wrong !! ->
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>

odpovede:

1 pre odpoveď č. 1

Tieto dve pravidlá by mali byť všetko, čo potrebujete:

<rewrite>
<rules>
<rule name="root rule" stopProcessing="true">
<match url="^$" />
<action type="None" />
</rule>
<rule name="redirect rule" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_URI}" pattern="^/css" negate="true" />
<add input="{REQUEST_URI}" pattern="^/js" negate="true" />
</conditions>
<action type="Redirect" url="/" />
</rule>
</rules>
</rewrite>

Prvý z nich zabezpečuje, že root nie jepresmerované do presmerovacej slučky a zastaví spracovanie ďalších pravidiel, ktoré môžu platiť inak, a druhá vylučuje priečinky, ktoré chcete vylúčiť, jednoducho pridajte ďalší riadok k podmienkam, ak existuje viac priečinkov, ktoré nechcete presmerovať na root ,