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ď č. 1Tieto 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 ,