J'essaie de réécrire HTTP en HTTPS pour un sous-dossier spécifique sur mon serveur Web IIS 8.5 mais cela ne fonctionne pas. J'ai lu d'innombrables autres solutions et articles de blog mais rien de ce que j'ai essayé n'a fonctionné.Réécrire le sous-dossier uniquement (HTTP vers HTTPS) redirige vers la racine du site
http://domain.example.com/one/two/three/
devrait rediriger vers ... (même URL, mais en utilisant https)
https://domain.example.com/one/two/three/
mais est plutôt rediriger vers ... (racine du site en utilisant le protocole HTTPS)
https://domain.example.com
chargement. .. (url souhaitée avec https)
https://domain.example.com/one/two/three/
redirige également vers ... (racine du site utilisant https)
https://domain.example.com
supprime les sous-dossiers de l'URL.
Ce dossier doit également être protégé avec l'authentification Windows, que je peux utiliser mais la redirection https échoue avec ou sans l'authentification activée, donc je ne pense pas que ce soit la cause.
Dans IIS, j'ai sélectionné le sous-dossier souhaité (/ trois/dans l'exemple ci-dessus) et créé la règle de réécriture.
<rewrite>
<rules>
<clear />
<rule name="HTTP to HTTPS redirect" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
Cela devrait bien sûr travailler avec tous les fichiers et dossiers contenus dans le sous-dossier souhaité. (/ Trois)
J'ai essayé et il redirige vers l'url apparente correcte, mais donne l'erreur « trop de redirection »:
<rule name="HTTP to HTTPS redirect" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" redirectType="SeeOther" />
</rule>