Problem, Frage
Wenn Sie versuchen Neufassungsregeln im IIS mit installiertem Dispatcher zu konfigurieren, erhalten Sie 500 Fehlermeldungen. Wie richten Sie das URL-Neufassungsmodul von IIS7, sodass es mit dem CQ-Dispatcher funktioniert?
Auflösung, Antwort
Richten Sie IIS 7.x einAnweisungen zum Installieren von IIS7.x finden Sie hier:
http://learn.iis.net/page.aspx/29/installing-iis-7-on-windows-server-2008-or-windows-server-2008-r2/
Achten Sie beim Installieren von IIS darauf, alle Funktionen zu aktivieren.
IIS URL-Neufassung einrichten
Sie benötigen dazu das IIS URL-Neufassungsmodul. Klicken Sie die „Installieren“-Schaltfläche rechts auf folgender Webseite:
http://www.iis.net/download/urlrewrite
Dispatcher einrichten
Befolgen Sie zum Installieren des Dispatchers in IIS7 diese Anweisungen:
http://dev.day.com/docs/en/cq/current/deploying/dispatcher.html#Microsoft%20Information%20Server
Konfiguration von URL-Neufassung zum Funktionieren mit GZIP-Komprimierung
In diesem Schritt konfigurieren wir die IIS GZIP-Komprimierungseigenschaft, sodass sie mit der Ausgabeneufassung für URLs harmoniert (in einer Standardkonfiguration widersprechen sich diese beiden Funktionen).
- Klicken Sie auf „Start“ -> „Verwaltung“ -> „Internet Information Services (IIS)-Manager“
- Durchsuchen Sie im IIS-Manager den Verzeichnisbaum und wählen Sie die IIS-Seite aus, auf der Sie den Dispatcher konfiguriert haben.
- Doppelklicken Sie auf „Komprimierung“
- Deaktivieren Sie „Statische Inhaltskomprimierung ermöglichen“
- Klicken Sie auf „Start“
- Geben Sie im Eingabefeld „Programme und Dateien suchen“ den Befehl „cmd“ ein und drücken Sie Strg + Umschalt + Eingabetaste (dies führt den Befehl als Administrator aus).
- Geben Sie in der Befehlseingabe mit Administratorrechten Folgendes ein, um den LogRewrittenUrlEnabled-Registereintrag hinzuzufügen:
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Rewrite /v LogRewrittenUrlEnabled /t REG_DWORD /d 0 - Rufen Sie das Fenster „Internet Information Services (IIS)-Manager“ auf und gehen Sie erneut zur Dispatcher-Webseite. Doppelklicken Sie dann auf „Konfigurationseditor“ und überprüfen Sie, ob die dynamicCompressionBeforeCache-Eigenschaft für das /system.webServer/urlCompression-Konfigurationselement auf „False“ eingestellt ist.
- Gehen Sie zurück zur Hauptseitenansicht (durch Klicken auf die Site im linken Verzeichnisbaum)
- Doppelklicken Sie auf „Module“
- Klicken Sie auf der rechten Seite des Modulbildschirms auf „Geordnete Liste anzeigen...“
- Verschieben Sie das Neufassungsmodul (RewriteModule) unter das dynamische Komprimierungsmodul (DynamicCompressionModule)
Konfigurieren von Mustern der Neufassungsregeln
In diesem Schritt konfigurieren Sie einige als Beispiel dienende Neufassungsregeln für die Webseite www.geometrixx.com. Durch diese Regeln werden URLs mit HTML-Erweiterungen neu geschrieben, sodass /content/geometrixx nicht mehr enthalten ist. Wenn Sie beispielsweise direkt auf eine CQ5-Veröffentlichungsinstanz gehen, können Sie http://localhost:4503/content/geometrixx/en.html aufrufen. Wenn Sie unter Verwendung dieser Neufassungsregeln mithilfe des DNS-Hostnamens www.geometrixx.com auf den IIS-Server zugreifen, rufen Sie http://www.geometrixx.com/en.html auf und werden zu /content/geometrixx/en.html geführt.
Zum Konfigurieren von Neufassungsregeln, die mit dem Dispatcher-Modul einheitlich funktionieren, müssen Sie sie auf Server-Ebene konfigurieren. Außerdem geht es viel schneller, diese Regeln durch Ändern der IIS applicationHost.config XML-Datei zu konfigurieren als die Benutzeroberfläche zu verwenden; daher beziehen sich diese Anweisungen auf diese Methode.
- Klicken Sie „Start“
- Geben Sie den Text „Notepad“ im Feld „Progamme und Dateien suchen“ ein und drücken Sie Strg+Umschalt+Eingabetaste (dadurch wird der Befehl als Administrator ausgeführt)
- Klicken Sie im Popup, das Sie fragt: „Möchten Sie zulassen, dass das folgende Programm Änderungen an diesem Computer vornimmt?“, auf „Ja“.
- Klicken Sie in Notepad auf „Datei“ -> „Öffnen“
- Kopieren Sie folgenden Pfad ins Dialogfeld: c:\Windows\system32\inetsrv\config\applicationHost.config und drücken Sie die Eingabetaste. Jetzt sollte der Inhalt der applicationHost.config-Datei im Editor angezeigt werden.
- Führen Sie den Vorgang Kopieren und Einfügen für Folgendes aus, und zwar direkt vor dem abschließenden XML-Tag </system.webServer>
<rewrite>
<globalRules>
<rule name="Root Context 1" enabled="true">
<match url="^(.*)\.html(.*)" />
<action type="Rewrite" url="/content/geometrixx/{R:1}.html{R:2}" appendQueryString="false" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www.geometrixx.com" />
<add input="{REQUEST_URI}" pattern="^/etc/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/etc$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/bin/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/system/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/libs/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/libs$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/var/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/tmp/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/tmp$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/crx/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/crx$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/content/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/crxde$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/apps/" negate="true" />
<add input="{REQUEST_URI}" pattern="^/apps$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/scripts/disp_iis" negate="true" />
<add input="{REQUEST_URI}" pattern="^/dispatcher/invalidate" negate="true" />
</conditions>
</rule>
</globalRules>
<outboundRules>
<rule name="rewrite output" enabled="true">
<match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^/content/geometrixx/(.*)\.html(.*)$" />
<action type="Rewrite" value="/{R:1}.html{R:2}" />
<conditions>
</conditions>
</rule>
</outboundRules>
</rewrite> - Drücken Sie Strg+S im Notepad, um zu speichern
- Klicken Sie auf „Start“ -> „Verwaltung“ -> „Internet Information Services (IIS)-Manager“
- Wählen Sie den obersten Knoten im Verzeichnisbaum (das Serversymbol)
- Klicken Sie mit der rechten Maustaste auf das Serversymbol und dann auf „Stopp“, um den Server zu stoppen.
- Nachdem er angehalten wurde, gehen Sie zurück und klicken Sie auf „Starten“.
- Wählen Sie das Serversymbol im IIS-Manager aus.
- Doppelklicken Sie im rechten Bedienfeld auf „URL Rewrite“.
- Jetzt sollten die Beispielregeln angezeigt werden, die Sie über die XML-Dateien hinzugefügt haben.