La règle de réécriture pour HTTPS, sauf lorsque sur localhost
Je suis en utilisant la réponse donné ici comme base pour essayer d'ajouter une règle de réécriture de mon web.fichier de configuration. Je veux qu'elle correspond à l'url qui n'est pas en cours d'exécution sur localhost dans le but de les forcer https.
Voici ce que j'ai en ce moment:
<system.webServer>
<rewrite> <!-- force https - https://stackoverflow.com/a/15119044/51 -->
<rules>
<rule name="Redirect HTTP to HTTPS" stopProcessing="true">
<match url="^((?!localhost).)*$"/>
<conditions>
<add input="{HTTPS}" pattern="^OFF$"/>
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther"/>
</rule>
</rules>
</rewrite>
</system.webServer>
Je suis en train d'utiliser un négatif lookaround afin de ne correspondre les url qui ne comprennent pas "localhost" dans l'url. Mais ce n'est pas de travail.
Alors, comment cette règle devrait être mis en place pour que réécrire non localhost url?
Vous devez vous connecter pour publier un commentaire.
Essayer cette condition:
À l'aide d'un
negate
état contre lelocalhost
modèle devrait faire l'affaire.HTTP Error 500.50 - URL Rewrite Module Error.
negate="true"
{R:1}
- qui n'est plus inclus dans la mise en correspondance.Ajoutant à anubhava de réponse, vous pouvez remplacer l'élément add pour localhost avec 2 entrées pour répondre à ces deux localhost et 127.0.0.1 avec, en option, des ports d'e.g localhost:59400 ce qui est le cas lorsque le débogage dans visual studio et IIS
Avec l'original de la réplique, localhost:123 serait redirigé vers https qui peut ne pas être souhaitable.