2017-06-26 1 views
0

La règle de redirection ci-dessous de non www à www.sitedomain.com travaux, mais la clause d'exemption pour les demandes de domaine CDN (add input = "{HTTP_HOST}" pattern = "cdnprefix.azureedge.net" negate = "true") sont ignorés et les requêtes cdn redirigent aussi vers www.sitedomain.com. Pouvez-vous m'aider à modifier la (les) section (s) de réécriture pour résoudre ce problème?application service Azure non www à la règle www redirect ignorer le domaine cdn

<rule name="Redirect non-www to www.sitedomain.com" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions logicalGrouping="MatchAll"> 
    <!-- domain is not canonical --> 
    <add input="{HTTP_HOST}" matchType="Pattern" ignoreCase="true" pattern="^sitedomain\.com$" /> 
    <add input="{HTTP_HOST}" pattern="^www\.sitedomain\.com$" negate="true" /> 
    <add input="{HTTP_HOST}" pattern="cdnprefix\.azureedge\.net" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="https://www.sitedomain.com{HTTP_URL}" redirectType="Permanent" appendQueryString="false" /> 
</rule> 

Avec HTTP efficace -> httpS rediriger la règle (diviser pour simplifier la solution pour la règle d'exemption CDN), il ressemble à ceci:

<rule name="Redirect to https"> 
    <match url="(.*)" /> 
    <conditions> 
    <add input="{HTTPS}" pattern="Off" ignoreCase="true" /> 
    <add input="{REQUEST_METHOD}" pattern="^get$|^head$" /> 
    </conditions> 
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> 
</rule> 
<rule name="Redirect non-www to www.sitedomain.com" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions logicalGrouping="MatchAll"> 
    <!-- domain is not canonical --> 
    <add input="{HTTP_HOST}" matchType="Pattern" ignoreCase="true" pattern="^sitedomain\.com$" /> 
    <add input="{HTTP_HOST}" pattern="^www\.sitedomain\.com$" negate="true" /> 
    <add input="{HTTP_HOST}" pattern="cdnprefix\.azureedge\.net" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="https://www.sitedomain.com{HTTP_URL}" redirectType="Permanent" appendQueryString="false" /> 
</rule> 

Répondre

1

Pour le domaine canonique, il vous suffit cette règle

<rule name="CanonicalHostNameRule1" stopProcessing="true"> 
        <match url="(.*)" /> 
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
         <add input="{HTTP_HOST}" pattern="^www.\sitedomain\.com$" negate="true" /> 
        </conditions> 
        <action type="Redirect" url="https://www.sitedomain.com/{R:1}" /> 
       </rule> 

Vous pouvez alors ajouter la section suivante pour CDN

<add input="{HTTP_HOST}" pattern="cdnprefix\.azureedge\.net" negate="true" /> 

Espérons que cela fonctionne!

+0

J'ai essayé et il n'y a aucune amélioration. La règle canonique fonctionne mais les ressources cdn redirigent vers le domaine du site ** cdnprefix.azureedge.net/** _ path2resource_ -> ** www.sitedomain.com/** _ path2resource_ – Mario

+0

Voici la règle que j'ai ajoutée et ça marche bien pour moi .Test dans mon local

+0

Sin Si vous avez donné la redirection permanente, veuillez supprimer complètement le cache du navigateur et réessayer. –