Sto tentando di impostare una regola di riscrittura dell'URL di IIS in modo che corrisponda a 403 risposte come risultato del tentativo di navigazione in una directory quando la navigazione nella directory è disabilitata. Voglio quindi reindirizzarli alla solita pagina degli errori personalizzati di ASP.NET che ho definito per 404s.Impossibile modificare il codice di risposta IIS con URL Riscrivere la regola in uscita
Ecco quello che ho attualmente:
<outboundRules>
<!-- By default, browsing a directory with no default resource will return 403 -->
<rule name="Directory browsing location">
<match serverVariable="RESPONSE_LOCATION" pattern="(.*)" />
<conditions>
<add input="{RESPONSE_STATUS}" pattern="^403" />
</conditions>
<action type="Rewrite" value="/Error/PageNotFound?aspxerrorpath={PATH_INFO}"/>
</rule>
<rule name="Directory browsing status code" patternSyntax="ExactMatch">
<match serverVariable="RESPONSE_STATUS" pattern="403" />
<action type="Rewrite" value="302" />
</rule>
</outboundRules>
La mia ipotesi è che ha bisogno di essere una regola di uscita e che ho bisogno di riscrivere sia il codice di stato e aggiungere l'intestazione posizione di risposta, anche se quest'ultimo wouldn Esistono comunque con la risposta originale 403.
Il comportamento al momento è ... niente. Sto ancora vedendo 403s, non importa quanto tweaking che faccio. Qualche idea là fuori?
Per inciso, no, non ci sono nessun 403 legittimi sul sito che potrebbero essere inghiottiti come risultato di questo. Potrei anche creare in entrata regole per ogni percorso che potrebbe comportare il soddisfacimento della condizione, ma non è molto scalabile.