it-swarm.com.de

IIS Url Rewrite funktioniert nicht für IIS 8

Ich habe gerade meine Website auf einen neuen Computer umgestellt, der IIS 8 von einem IIS 7.5 verwendet. Alles außer das Umschreiben von URLs funktioniert gut. Es gibt keine Fehlermeldung als "HTTP Error 404.0 - Not Found", die ich bekommen habe. Was ich nur erkannt habe, ist, dass es einen Eintrag wie RewriteModule (%SystemRoot%\system32\inetsrv\rewrite.dll) auf der Website> Moduleinstellungsseite gibt, aber IIS 8 hat kein Modul. Obwohl ich dasselbe Modul zu IIS 8 hinzugefügt habe, funktionierte es nicht. Ich freue mich, wenn ich Vorschläge zur Lösung des Problems haben kann. Weitere Informationen erhalten Sie auf Anfrage.

Ich hoffe, ich konnte ausdrücken, was ich richtig meine.!

Danke im Voraus,

alper

ps: url regeln funktionieren gut ..

19
alper

als Erstes müssen Sie prüfen, ob das Umschreiben der URL gut funktioniert. Folgen Sie diesem Beispiel-Tutorial:

http://www.iis.net/learn/extensions/url-rewrite-module/gebrauchen-gefallener-Anforderungsverfolgung-zur-trace-rewrite-regeln

Ist dies nicht der Fall, öffnen Sie IIS8 und prüfen Sie, ob das Symbol zum Überschreiben der URL angezeigt wird. Wenn nicht, msi von hier herunterladen:

http://www.iis.net/downloads/Microsoft/url-rewrite

und installieren Sie das Modul erneut. Nun konnte das URL-Rewrite-Modul im IIS - Manager angezeigt werden, während es sich auf dem Stammknoten (Serverknoten) sowie auf Website- und Webanwendungsknoten befand.

Ich hoffe es hilft!

6

Ich hatte vergessen, die Bindungen für die Domains zum Umleiten von . Umleiten zu https://www.example.com benötigt normalerweise die folgenden Bindungen:

Diese Umleitungsregeln ( from SO ) haben dann für mich funktioniert:

<rule name="Redirect from non www" stopProcessing="true">
    <match url=".*" />
    <conditions>
      <add input="{HTTP_Host}" pattern="^example.com$" />
    </conditions>
    <action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent" />
  </rule>
  <rule name="Redirect from non https" stopProcessing="true">
    <match url=".*" />
    <conditions>
      <add input="{HTTPS}" pattern="^OFF$" />
      <add input="{HTTP_Host}" pattern="^www.example.com$" />
    </conditions>
    <action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent" />
  </rule>
3
Andi R

Für mich funktionierte meine URL-Umschreibung in IIS 7.5, jedoch nicht in IIS 8

Das Problem war das Muster

In IIS 7.5 hatte ich das Muster als off geschrieben.

In IIS8 musste ich es auf ^OFF$ aktualisieren.

2
MyDaftQuestions

Ich habe ein paar Stunden damit verbracht, dieses Problem zu lösen. Es gibt Schritte, die ich durchlaufen habe, und das Umschreibungsmodul hat gut funktioniert.

  1. Installieren Sie das Überschreibmodul erneut. Wenn dieses Modul nicht in der installierten Anwendungsliste IIS und Angezeigt wird, das Installationsprogramm jedoch neu geschrieben wird und bereits installiert ist, gehen Sie zur Registrierung (HKLM/SOFTWARE/Microsoft/WINDOWS/CURRENTVERSION/Uninstall) und Serach 'rewrite'. . Finden Sie den Deinstallationsstring und führen Sie ihn aus. Es entfernt das Überschreibmodul und Sie können die Installation von Grund auf durchführen. 
  2. Installieren Sie das Application Request Routing-Modul für IIS.
  3. WICHTIG! Wenn Sie bereits über web.config mit Regeln verfügen, entfernen Sie diese. Erstellen/Hinzufügen von Regeln über das Menü IIS. Auf diese Weise wird mit IIS das wichtige ARP-Modul aktiviert.
2
Riddik

Es half, die Umschreiberegeln zu überprüfen und zu korrigieren. Ich weiß, dass es früher funktioniert hat und ich weiß nicht, ob ich es ändern möchte.

1
Tomas Kubes

Ich hatte auch dieses Problem . Wie das OP bemerkt hat, ist die .dll nicht registriert. Der Installer sagt, dass alles in Ordnung ist, das Symbol für das Umschreiben befindet sich im IIS Manager, aber es funktioniert nicht. Überprüfen Sie, ob die DLL vorhanden ist (siehe Pfad unten). Verwenden Sie den Microsoft-Notizblock. Wirklich, ich scherze NICHT, es muss ein Microsoft-Notizblock sein, nicht einmal Visual Studio wird dafür funktionieren. Starten Sie notepad als Administrator und öffnen Sie C:\Windows\System32\inetsrv\Config\applicationHost.config

Fügen Sie dem <globalModules>-Knoten die folgende Zeile hinzu.

<add name="RewriteModule" image="%SystemRoot%\system32\inetsrv\rewrite.dll" />

Speichern Sie und probieren Sie Ihre Regeln jetzt aus.

Es muss wirklich ein Notizblock sein. Wenn Sie versuchen, applicationHost.config auf einem 64-Bit-System mit etwas anderem zu bearbeiten, werden Sie sich stundenlang die Haare ausreißen. Eine der verrücktesten Windows-Anomalien, die ich je gesehen habe . http://weblog.west-wind.com/posts/2008/Aug/09/Editing-Applicationhostconfig-on-64-bit-Win2008http://dpotter.net/technical/2009/11/editing-applicationhostconfig-on-64-bit-windows/

1
user138720

Öffnen Sie IIS Manager> Server> -Module> Native Module konfigurieren.__Wählen Sie in der Liste RewriteModule aus und klicken Sie auf OK

IIS Config

Das funktioniert für mich.

1
user1940849

Ich hatte gerade ein ähnliches Problem nach einem Update von Windows Service 2008 zu Windows Service 2012, und obwohl ich dies nicht vollständig getestet habe, musste ich lediglich das Überschreibmodul speziell deinstallieren/erneut installieren.

Ich hoffe, das hilft jedem, der das gleiche Problem hat.

1
Sanction10

Sie könnten diese Methode ausprobieren. Nach einer kleinen Google-Suche sind Sie nicht der einzige mit diesem Problem -> http://forums.iis.net/t/1173537.aspx/1

Überprüfen Sie auch Folgendes: Stellen Sie sicher, dass diese Einstellung false ist. Andernfalls kann die .NET-Anwendung die URL möglicherweise erneut umleiten, nachdem die URL neu geschrieben wurde.

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
0
Ben H