Je suis coincé avec la redirection pour des domaines spécifiques. La configuration consiste en des applications Web Azure qui apportent leur propre domaine *.azurewebsites.net
. Je souhaite exclure ceux-ci de la redirection. Pour des domaines supplémentaires, par exemple example.com j'ai besoin de rediriger
https://www.example.com
Edit: J'utilise des emplacements de déploiement, je veux donc que le même web.config fonctionne lorsque j'échange un emplacement en production.
Lorsque j'ai essayé d'utiliser plusieurs règles, des erreurs de serveur ou de redirection se sont malheureusement produites. Devrais-je mieux apprendre le regex? Voici ma première règle pour exclure les domaines "internes", mais cela ne fonctionne déjà pas:
<rule name="ignore Azure" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_Host}" pattern="^azurewebsites\.net$" />
<add input="{HTTPS_Host}" pattern="^azurewebsites\.net$" />
</conditions>
<action type="none" />
</rule>
J'ai lu les 30 premiers articles sur Google mais aucun de ceux-ci n'exclut un autre nom de domaine.
Basé sur Joses Answer, voici ce dont j'ai besoin: - Je peux accéder au domaine azurewebsites tout en restant sur l'emplacement de déploiement - le domaine de production sera toujours redirigé vers le sous-domaine avec https
<rule name="HTTPS and Subdomain in Production" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_Host}" pattern="^.*\.azurewebsites\.net$" negate="true" />
<add input="{HTTP_Host}" pattern="^www\..*" negate="true" />
</conditions>
<action type="Redirect" url="https://www.{HTTP_Host}/{R:1}" redirectType="Permanent"/>
</rule>
Je pense que la règle dont vous avez besoin est la suivante:
<rule name="HTTPS ignore Azure" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_Host}" pattern="^.*\.azurewebsites\.net$" negate="true" />
<add input="{HTTPS}" pattern="^OFF$" />
<add input="{HTTP_Host}" pattern="^www\..*" negate="true" />
</conditions>
<action type="Redirect" url="https://www.{HTTP_Host}/{R:1}" />
</rule>
Cette règle vérifie si le domaine actuel est not sous la forme * .azurewebsites.net, ne commence pas par www.
et si c'est not demandé via HTTPS. Si les trois "if" s'appliquent, il s'agit alors d'un domaine personnalisé sans que www
soit accessible via HTTP. Vous devez donc envoyer une redirection permanente (301) vers la version https: // du domaine demandé en ajoutant un www
en tant que sous-domaine.
Ça devrait marcher. Essayez et dites-moi.
HTH
Si vous essayez simplement de forcer HTTPS, il s'agit désormais d'une fonctionnalité d'Azure Web Apps sans qu'aucune modification de configuration ne soit requise.
Comment créer un protocole HTTPS Azure App Service uniquement