2017-10-19 30 views
1

Actuellement, ma règle est la suivante:URL Web.config redirection vers non www + https

<rule name="SecureRedirect" stopProcessing="true"> 
    <match url="^(.*)$" /> 
    <conditions> 
    <add input="{HTTPS}" pattern="off" /> 
    <add input="{HTTP_HOST}" pattern="^(www\.)?(.*)$" /> 
    </conditions> 
    <action type="Redirect" url="https://{C:2}" redirectType="Permanent" /> 
</rule> 

Le problème est ici:

http://www.domainName.com/image.png redirige à tort https://domainName.com au lieu de https://domainName.com/image.png

et

https://www.domainName.com/image.png ne redirige jamais vers https://domainName.com/image.png

Alors, quelle est la véritable façon de rediriger tous vers des URL autres que https https?

Répondre

0

La façon dont je l'ai fait sur mon site se présente comme suit:

ServerName www.example.com 
ServerAlias example.com 
Redirect/https://www.example.com/ 
+0

Je ne comprends pas ce que vous entendez par là dans l'environnement web-config! – user3196160

+2

Cette réponse n'est pas pour IIS –

0

Essayez cette règle:

<rule name="SecureRedirect" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions logicalGrouping="MatchAny"> 
     <add input="{HTTPS}" pattern="^OFF$" /> 
    </conditions> 
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" /> 
</rule> 
0

La règle correcte, ce qui conviendra à toutes vos exigences est:

<rule name="SecureRedirect" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions logicalGrouping="MatchAny"> 
     <add input="{HTTP_HOST}" pattern="^(www\.)?(.*)$" /> 
     <add input="{HTTPS}" pattern="off" /> 
    </conditions> 
    <action type="Redirect" url="https://{C:2}/{R:1}" redirectType="Permanent" /> 
</rule>