web-dev-qa-db-fra.com

IIS rôle de réécriture d'URL sauf certaines URL

J'ai obtenu cette règle dans la réécriture d'URL qui réécrit chaque demande sur le site en utilisant HTTP vers HTTPS

<rule name="Force HTTPS" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_Host}/{R:1}" appendQueryString="true" redirectType="Permanent" />
                </rule>

J'ai besoin d'une autre règle ou exception dans ce rôle pour réécrire ou rediriger des URL spécifiques vers HTTP.

Est-ce possible?

33
Mido

Vous pouvez ajouter les exceptions pour lesquelles vous ne souhaitez pas effectuer la redirection vers HTTPS en tant que conditions supplémentaires (non égales à cette URL), comme ceci:

<rule name="Force HTTPS" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
        <add input="{REQUEST_URI}" negate="true" pattern="^/noredirect/forthis/page\.aspx$" ignoreCase="true" />
        <add input="{REQUEST_URI}" negate="true" pattern="^/noredirect/forthis/page-as-well\.aspx$" ignoreCase="true" />
        <add input="{REQUEST_URI}" negate="true" pattern="^/noredirect/forthis/page-as-well-too\.aspx$" ignoreCase="true" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_Host}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
77
Marco Miltenburg