2017-08-04 6 views
1

Ich habe eine Azure Web-Anwendung und müssen mit der Durchsetzung https helfen.azur Web-App: www nicht www https

https://www.example.com zu https://example.com

http://www.example.com zu https://example.com

www.example.com zu https://example.com

example.com zu https://example.com

Der aktuelle web.config ist als unten. Das funktioniert nicht für https://www.example.com ->https://example.com

<rules> 


     <!-- Force HTTPS for all requests --> 
     <rule name="HTTPS" enabled="true" patternSyntax="Wildcard" stopProcessing="true"> 
      <match url="*" /> 
      <conditions> 
      <add input="{HTTPS}" pattern="off" /> 
      </conditions> 
      <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" /> 
     </rule> 


     <!-- Redirect all requests to non www--> 
     <rule name="WWW" stopProcessing="true"> 
      <match url="^(.*)$" /> 
      <conditions> 
      <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" /> 
      </conditions> 
      <action type="Redirect" url="https://example.com{PATH_INFO}" /> 
     </rule> 

</rules> 

Antwort

3

Nach Ihrer URL Rewrite-Regeln, ging ich davon aus, dass es kein Problem mit Regeln. Obwohl ich die benutzerdefinierte Domain nicht konfigurieren, ich teste es gerade auf dem azur Web-App, die nur ein paar statischen HTML-Dateien und die Datei web.config enthält, dann ist es bruce-webapp.azurewebsites.net-https://azurewebsites.net leitet ich zwingen, wie folgt:

<rule name="Remove www" stopProcessing="true"> 
    <match url="^(.*)$" /> 
    <conditions> 
     <add input="{HTTP_HOST}" pattern="^(bruce-webapp\.)(.*)$" /> 
    </conditions> 
    <action type="Redirect" url="https://azurewebsites.net{PATH_INFO}"/> 
</rule> 

auch die folgende Regel zum Entfernen des www Präfix dieses Problem zu verengen, bitte:

<rule name="Remove WWW prefix" stopProcessing="true"> 
    <match url="(.*)" ignoreCase="true" /> 
    <conditions> 
     <add input="{HTTP_HOST}" pattern="^www\.yourdomain\.com$" /> 
    </conditions> 
    <action type="Redirect" url="https://yourdomain.com/{R:1}" redirectType="Permanent" /> 
</rule> 

Wenn die oben genannten Versuche noch nicht Ihr Problem lösen könnte, Sie fiddler nutzen konnte Sammeln Sie die Netzwerkspuren, um dieses Problem zu beheben. Außerdem könnten Sie Ihre Frage mit weiteren Details (Fiddler-Netzwerk-Traces oder was passiert, wenn Sie es über den Browser anzeigen) aktualisieren, damit wir dieses Problem finden.

+0

danke für die Antwort, denn jetzt, ich habe auf das www-Format umgeschaltet. – nitin

+0

Es scheint, dass Sie es gelöst haben. Wenn meine Antwort Ihnen helfen könnte, markieren Sie es bitte als eine akzeptable Antwort. –

+0

Markiert akzeptabel, danke – nitin

0

Sie können dies tun, mit zwei separaten Regeln. Legen Sie die folgende Konfiguration in Ihrer Datei web.config fest.

<rewrite> 
    <rules> 
     <rule name="HTTP Redirect to HTTPS" enabled="true" stopProcessing="true"> 
      <match url="(.*)" ignoreCase="false" /> 
      <conditions> 
       <add input="{HTTPS}" pattern="off" /> 
      </conditions> 
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" /> 
     </rule> 
    </rules> 
</rewrite> 

    <rewrite> 
    <rules> 
     <rule name="Redirects to www.domain.com" patternSyntax="ECMAScript" stopProcessing="true"> 
      <match url=".*" /> 
      <conditions logicalGrouping="MatchAny"> 
       <add input="{HTTP_HOST}" pattern="^domain.com$" /> 
      </conditions> 
      <action type="Redirect" url="https://example.com/{R:0}" /> 
     </rule> 
    </rules> 

</rewrite> 

Hoffnung, das hilft.

+0

Diese nicht für https funktioniert: //www.example.com „auf https: //example.com“ – nitin

Verwandte Themen