web-dev-qa-db-fra.com

Autoriser (et corriger l'URL) lorsqu'il existe un caractère spécial tel que% 26 utilisant IIS et le module de réécriture

Je suis aux prises avec une ancienne application qui utilise des caractères spéciaux tels que %26 dans l'URL. Les caractères n'affectent pas l'application, mais ne peuvent pas être modifiés. J'essaie donc de faire en sorte que IIS les traite.

J'ai essayé de les ignorer en utilisant plusieurs méthodes , mais rien ne semble fonctionner.

Alors maintenant, j'ai installé le module de réécriture IIS et ajouté une règle de réécriture à web.config pour remplacer les caractères %26 avec _, par exemple:

<rewrite>
    <rules>
        <rule name="ampersand" patternSyntax="Wildcard" stopProcessing="true">
            <match url="*%26*" />
            <action type="Redirect" url="{R:1}_{R:2}" />
        </rule>
    </rules>
</rewrite>

Le problème est que IIS répond par une "requête incorrecte" avant que la règle de réécriture ne soit appelée. Ma question est donc la suivante: comment puis-je modifier l’ordre de priorité de sorte que le filtre de réécriture de mod soit appelé avant que IIS ne mette fin à l’interdiction de cette URL?

1
plumtreematt

essayez de changer la règle pour:

<match url="(.*)%26(.*)" />
1
user38299