2017-02-25 5 views
0

Ich habe gerade https Zertifikat installiert und habe eine harte Zeit Einrichten Redirect.
Ich habe versucht, HTTP Redirect in IIS (7.5), aber kann es nicht in IE und in FF und Chrome zu arbeiten, sobald ich die erste Anmeldeseite übergeben, bekomme ich "Too many Redirect" -Fehler.
Ich versuchte auch URL Rewrite, aber es war totaler Fehler, so dass ich wieder auf HTTP Redirect.HTTPS Redirect zu einem Ordner funktioniert nicht

Benutzer, die mit "http://example.com/internal" auf die Website zugreifen. Nun möchte ich dies zu "https://internal.example.com/internal" umleiten und kann es nicht zur Arbeit bringen. Ich würde viel lieber nicht das letzte "interne" in der URL verwenden, wenn möglich (der allgemeine Name, den ich bei der Anforderung von CSR verwendet habe, war internal.example.com).

In HTTP-Weiterleitung, ich "Redirect Anforderungen an dieses Ziel" auf "https://internal.example.com/internal/default.aspx" und "Redirect Verhalten" auf "Nur Anfragen an Inhalt in diesem Verzeichnis umleiten" mit Statuscode 301 (Permanent).

Website hat einen "internen" Ordner, der die .Net-Anwendungsdateien enthält und Formularauthentifizierung erfordert. Die Dateien im Stammordner sind für alle zugänglich (d. H. Www.example.com ist für alle offen).

Jede Hilfe, die Sie zur Verfügung stellen können, wird sehr geschätzt.

aktualisieren

I web.config aktualisiert und einige URL Rewrite-Regel hinzugefügt, aber noch nicht ganz da.
In IE, wenn ich example.com/internal es geht auf https://internal.example.com, aber nicht http://internal.example.com/internal.
In Chrome, es geht nicht auf https, bleibt in http und zeigt "Nicht sicher".

<rewrite> 
    <rules> 
     <rule name="Rewrite to internal" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions> 
       <add input="{HTTP_HOST}" pattern="^www.example.com$" /> 
      </conditions> 
      <action type="Redirect" url="{R:1}" /> 
     </rule> 
     <rule name="internal.example.com to sub folder internal" enabled="true" stopProcessing="true"> 
      <match url="(.*)" ignoreCase="true" /> 
      <conditions logicalGrouping="MatchAll"> 
       <add input="{HTTPS}" pattern="^OFF$" /> 
       <add input="{HTTP_HOST}" pattern="^internal\.example\.com$" ignoreCase="false" /> 
       <add input="{PATH_INFO}" pattern="^/internal($|/)" negate="true" /> 
      </conditions> 
      <action type="Redirect" url="https://{HTTP_HOST}/" /> 
     </rule> 
    </rules> 
</rewrite> 

Die erste Regel ist, einfach http://example.com durch loslassen; Die zweite besteht darin, http://example.com/internal zu https://internal.example.com/internal umzuleiten.

Antwort

0

Überprüfen Sie Ihr Authentifizierungs-Applet in IIS. Es sollte anonyme Authentifizierung ermöglichen.

+0

Danke. Ich hatte "Basic Authentication" zusätzlich zu "Form Authentication" ausgewählt und es mir nicht erlaubt, Anonyme Auth zu aktivieren. Ich habe Basic deaktiviert und Anonymous aktiviert, aber keine Änderung. Ich habe die Frage nur mit einigen zusätzlichen Informationen zur Änderung von web.config aktualisiert. – NoBullMan

+0

Ich habe beschlossen, sowohl URL Rewrite als auch HTTP Redirect zu entfernen und eine Umleitungsanweisung mit Response.Redirect auf Page_Init von Default.aspx.cs hinzuzufügen, wenn Request.ServerVariables ["SERVER_NAME"] und Request.ServerVariables ["PATH_INFO"] meine Bedingungen erfüllten Umleitung. Funktioniert in allen Browsern. – NoBullMan

+0

Ich habe ein ähnliches Setup auf einem Projekt, alles, was ich tun musste, war anonyme Auth einzurichten, deaktivieren Sie alle anderen Authentifizierung, dann eine Umleitung auf alle Port 80 Verkehr auf 443 mit aweb Config Neuschreiben. –

Verwandte Themen