HTTP to HTTPS Redirect-IIS 8.5 ne fonctionne pas correctement
j'ai lu un certain nombre de messages ici sur SO ainsi que sur le 'net (IIS blogs, etc.). J'essaye de forcer toutes les connexions à partir domain.com pour www.domain.com et en même temps forcer la requête de HTTP à HTTPS .
j'utilise cet ensemble de règles et de réécritures mais la seule chose qui se produit est qu'il redirige bien mais pas vers SSL.
<!-- Redirect to HTTPS -->
<rewrite>
<rules>
<rule name="Redirect to www" stopProcessing="true">
<match url="(.*)" />
<conditions trackAllCaptures="false">
<add input="{HTTP_HOST}" matchType="Pattern" pattern="^mydomain.com$" ignoreCase="true" negate="false" />
</conditions>
<action type="Redirect" url="{MapProtocol:{HTTPS}}://www.mydomain.com/{R:1}" />
</rule>
</rules>
<rewriteMaps>
<rewriteMap name="MapProtocol" defaultValue="http">
<add key="on" value="https" />
<add key="off" value="http" />
</rewriteMap>
</rewriteMaps>
</rewrite>
Qu'est-ce que je fais de mal?
référence du blog principal: http://weblogs.asp.net/owscott/url-rewrite-protocol-http-https-in-the-action and this SO post - web.config rediriger non-www www
3 réponses
Edit: alors j'ai trouvé ce billet de blog: http://www.meltedbutter.net/wp/?p=231 and give it a try and voila! A travaillé comme un charme. Je ne sais pas pourquoi cela a fonctionné au-dessus des règles affichées ci-dessus, mais dans mon cas, le ci-dessous fonctionne et prend avec succès tout le trafic non-www et le redirige à la fois www et https .
<!-- Redirect to HTTPS -->
<rewrite>
<rules>
<rule name="http to https" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://www.domain.com/{R:1}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
nous avons affronté le même problème en redirigeant du http vers https en utilisant le module de réécriture D'URL, mais après avoir désactivé le module SSL requis dans IIS fait le tour.
- Allez à Paramètres SSL du site web", 151940920"
- Décocher la case exiger la case SSL.
- appliquer les réglages et redémarrer iis
c'est peu probable pour certains cas mais j'avais supprimé mes reliures port 80 pour le site web car je voulais seulement SSL / port 443. Donc, de ce que je peux dire C'est que la reliure du Port 80 est également nécessaire pour que la réécriture fonctionne correctement.