web-dev-qa-db-fra.com

Effectuez une redirection dans IIS, mais affichez la jolie URL d'origine?

Le cas suivant:

Un visiteur entre sur http://www.example.com/pretty. Ceci est redirigé vers http://www.example.com/?ID=ugly. Cette partie fonctionne.

Cependant, nous aimerions que le visiteur continue à voir http://www.example.com/pretty dans la barre d'adresse de son navigateur, au lieu de http://www.example.com/?ID=ugly.

Nous avons essayé diverses combinaisons dans le module URL Rewrite, mais aucune ne semble nous donner le résultat souhaité.

Est-ce seulement possible?

1
Evert

Cela a finalement fait l'affaire.
URL laide: www.domaine.fr/?CatID=1167
jolie URL: www.domaine.com/personnes

<rewrite>
    <rules>
        <rule name="Redirect /people" enabled="true" stopProcessing="true">
            <match url="^$" />
            <conditions>
                <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
                <add input="{QUERY_STRING}" pattern="^catid=1167$" />
            </conditions>
            <action type="Redirect" url="/people" appendQueryString="false" />
        </rule>
        <rule name="Rewrite /people" enabled="true" stopProcessing="true">
            <match url="^people$" />
            <conditions>
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
            </conditions>
            <action type="Rewrite" url="?catid=1167" />
        </rule>
    </rules>
    <outboundRules>
        <rule name="OutboundRewrite /people" preCondition="ResponseIsHtml1" stopProcessing="false">
            <match filterByTags="A, Form, Img" pattern="catid=1167$" />
            <action type="Rewrite" value="/people" />
        </rule>
        <preConditions>
            <preCondition name="ResponseIsHtml1">
                <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
            </preCondition>
        </preConditions>
    </outboundRules>
</rewrite>
1
Evert