Freigeben über


Verwenden von Ausgangsregeln zum Hinzufügen von Webanalyse-Trackingcode

von Ruslan Yakushev

Dieser Abschnitt der Dokumentation bezieht sich auf URL Rewrite in der Modulversion 2.0 für IIS 7.

In dieser Anleitung erfahren Sie, wie Sie eine IIS-Rewrite-Ausgangsregel erstellen, die ein Webanalyse-Trackingskript in Webseiten einfügt.

Voraussetzungen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:

  1. URL Rewrite Module 2.0 RC muss installiert sein.

Einführung

Ein Webanalysedienst hat den Zweck, Websiteherausgebern statistische Informationen über die Besucher ihrer Websites zur Verfügung zu stellen. Diese Informationen helfen Websiteherausgebern, ihre Inhalte, Werbung und Serviceangebote zu optimieren, um die Kundenzufriedenheit und den ROI zu steigern. Online-Webanalysedienste wie Google Analytics oder Omniture erfassen dazu in der Regel Daten über die Websitebesucher. Wenn Websitebesitzer Berichte anfordern, verarbeitet der Webanalyseanbieter diese Daten und stellt sie Websitebesitzern in einem leicht verständlichen Format bereit. Um die für die Analyse erforderliche Datenerfassung zu ermöglichen, müssen Websitebesitzer alle Seiten auf einer Website mit einem Trackingskript ausstatten, das vom Anbieter des Webanalysediensts bereitgestellt wird.

In einigen Fällen funktioniert das Hinzufügen von Trackingcode zu den Webseiten sehr einfach. Oft ist es jedoch erforderlich, das Skript manuell zu den einzelnen Webseiten hinzuzufügen. In diesen Fällen wird die Vorbereitung für die Webanalyse zu einer kostspieligen und zeitaufwendigen Aufgabe. In diesen Situationen kann die Antwortumschreibefunktion (Response Rewrite) im URL-Rewrite-Modul Version 2 hilfreich sein, indem Ausgangsregeln ausgeführt werden, die den Antwortinhalt im laufenden Betrieb ändern.

Erstellen einer Rewrite-Ausgangsregel

Zunächst erstellen Sie eine Rewrite-Ausgangsregel, die der HTML-Antwort einen JavaScript-Codeschnipsel hinzufügt. Der Codeschnipsel wird unmittelbar vor dem schließenden </body>-Tag eingefügt, wie in der folgenden Abbildung dargestellt.

... 
    <script type='text/javascript'>
        //Your web analytics tracking code goes here...
    </script>
</body>

Beispiel für H T M L Web Analytics Tracking Code und X M L Code mit der HtmlEncode-Funktion.WARNUNG: In diesem beispiel wird davon ausgegangen, dass der JavaScript-Code von einer vertrauenswürdigen Quelle stammt und wie in die HTML-Seite eingefügt werden sollte. In vielen anderen Fällen, wenn Antwortheader oder der Antwortinhalt von einer Rewrite-Ausgangsregel geändert werden, sollte eine zusätzliche Vorsichtsmaßnahme ergriffen werden, um sicherzustellen, dass der Text, der in die Antwort eingefügt wird, keinen clientseitigen ausführbaren Code enthält, was zu websiteübergreifenden Scripting-Sicherheitsrisiken führen kann. Das ist besonders wichtig, wenn beim Umschreiben der Regel nicht vertrauenswürdige Daten verwendet werden, z. B. HTTP-Header oder die Abfragezeichenfolge, um die Zeichenfolge zu erstellen, die in die HTTP-Antwort eingefügt wird. In solchen Fällen sollte die Ersatzzeichenfolge mit der Funktion HtmlEncode HTML-codiert werden, z. B.:

<action type="Rewrite" value="{HtmlEncode:{HTTP_REFERER}}" />

So erstellen Sie die Ausgangsregel:

  1. Öffnen Sie den IIS-Manager.
  2. Klicken Sie auf „Standardwebsite“.
  3. Wählen Sie in der „Featureansicht“ die Option „URL-Rewrite-Modul“ aus.
    Screenshot der Fensteransicht
  4. Klicken Sie im Bereich „Aktionen“ auf der rechten Seite auf „Regeln hinzufügen...“. Wählen Sie im Dialogfeld „Regeln hinzufügen“ die „Leere Regel“ unter der Kategorie „Ausgangsregeln“ aus, und klicken Sie auf „OK“.
    Screenshot des Dialogfelds

Jetzt müssen Sie die eigentliche Ausgangsregel definieren. Im URL-Rewrite-Modul 2.0 wird eine Rewrite-Ausgangsregel durch Angabe der folgenden Informationen definiert:

  • Name der Regel.
  • Eine optionale Vorbedingung, die steuert, ob die Regel auf eine Antwort angewendet werden soll.
  • Das Muster, das für den Abgleich mit der Zeichenfolge in der Antwort verwendet werden soll.
  • Eine optionale Reihe von Bedingungen.
  • Die Aktion, die ausgeführt werden soll, wenn ein Muster übereinstimmt und alle Bedingungsprüfungen erfolgreich waren.

Benennen der Regel

Geben Sie in das Textfeld „Name“ einen Namen ein, der die Regel eindeutig identifiziert, z. B.: „Trackingskript hinzufügen“.

Definieren einer Vorbedingung

Eine Vorbedingung wird verwendet, um festzustellen, ob die Ausgangsregel für eine Antwort ausgewertet werden soll. Wenn beispielsweise eine Regel HTML-Inhalte ändert, sollten nur HTTP-Antworten, deren Content-Type-Header auf „text/html“ gesetzt ist, anhand dieser Regel ausgewertet werden. Die Auswertung von Ausgangsregeln und das Umschreiben von Inhalten ist ein CPU-intensiver Vorgang, der sich negativ auf die Leistung einer Webanwendung auswirken kann. Verwenden Sie daher Vorbedingungen, um die Fälle einzugrenzen, in denen Ausgangsregeln angewendet werden.

Da die zu erstellende Regel nur auf HTML-Antworten angewendet werden soll, definieren Sie eine Vorbedingung, die überprüft, ob der Inhaltstyp des HTTP-Antwortheaders gleich „text/html“ ist.

So definieren Sie eine Vorbedingung:

  1. Wählen Sie in der Liste „Vorbedingungen“ die Option „<Neue Vorbedingung erstellen...>“ aus.

  2. Dadurch gelangen Sie zum Dialogfeld „Vorbedingungs-Editor“, in dem Sie die Vorbedingung definieren müssen. Legen Sie die Vorbedingung wie folgt fest:

    • Name: „IsHTML

    • Verwendet: „Reguläre Ausdrücke

    • Klicken Sie auf „Hinzufügen“, um das Dialogfeld „Bedingung hinzufügen“ anzuzeigen. Geben Sie in diesem Dialogfeld Folgendes an:

      • Bedingungseingabe: „{RESPONSE_CONTENT_TYPE}

      • Überprüfen, ob Eingabezeichenfolge: „Entspricht dem Muster

      • Muster: „^text/html

        Screenshot des Dialogfelds

  3. Klicken Sie auf „OK“, um die Vorbedingung zu speichern und zur Seite „Regel bearbeiten“ zurückzukehren.

Definieren des Übereinstimmungsbereichs

Die Rewrite-Ausgangsregel kann den Inhalt eines HTTP-Headers oder den Antworttext verändern. Diese Regel soll den Inhalt der Antwort ändern. Wählen Sie daher in der Dropdown-Liste „Übereinstimmungsbereich“ die Option „Antwort“.

Definieren eines Musters

Wählen Sie in der Dropdown-Liste „Verwendet:“ die Option „Genaue Übereinstimmung“.

Geben Sie im Textfeld „Muster“ die folgende Zeichenfolge ein:

</body>

Definieren einer Aktion

Wählen Sie den Aktionstyp „Umschreiben“ aus, der im Gruppenfeld „Aktion“ aufgeführt ist. Geben Sie im Textfeld „Wert“ die folgende Zeichenfolge ein:

<script type='text/javascript'>//Your web analytics tracking code goes here...</script></body>

Diese Zeichenfolge gibt den neuen Wert an, der als Ersatz für die übereinstimmende Zeichenfolge in einer Antwort verwendet wird. In diesem Fall wird die Zeichenfolge „</body>“ durch den JavaScript-Codeschnipsel ersetzt, gefolgt vom schließenden HTML-Body-Tag.

Übernehmen Sie für alle anderen Einstellungen die Standardwerte. Die Eigenschaftenseite „Regel bearbeiten“ sollte wie die folgende Seite aussehen:

Screenshot der Eigenschaftenseite

Speichern Sie die Regel, indem Sie auf der rechten Seite die Aktion „Übernehmen“ auswählen.

Anzeigen der Rewrite-Regel in der Konfigurationsdatei

Die Rewrite-Regeln werden entweder in der Datei „aplicationHost.config“ oder in „web.config“-Dateien gespeichert. Um die Konfiguration der soeben erstellten Regel zu überprüfen, öffnen Sie eine „web.config“-Datei in %SystemDrive%\inetput\wwwroot\. In dieser Datei sollte der Abschnitt <rewrite> mit allen Regeldefinitionen angezeigt werden:

<rewrite>
 <outboundRules>
  <rule name="Add tracking script" patternSyntax="ExactMatch" preCondition="">
   <match filterByTags="None" pattern="&lt;/body>" />
   <action type="Rewrite" value="&lt;script type='text/javascript'>//Your web analytics tracking code goes here...&lt;/script>&lt;/body>" />
  </rule>
 <preConditions>
  <preCondition name="IsHTML">
    <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
  </preCondition>
 </preConditions>
</outboundRules>
</rewrite>

Testen der Regel

Um zu testen, dass die Regel der Webseite ordnungsgemäß einen JavaScript-Code hinzufügt, fordern Sie diese URL an http://localhost/iisstart.htm.

Sobald Sie eine Antwort vom Server erhalten, öffnen Sie den tatsächlichen HTML-Quellcode. (In Internet Explorer 8 rufen Sie „Seite“ --> „Quelle anzeigen“ auf.) Der Antwort-HTML-Code enthält den JavaScript-Code vor dem schließenden HTML-Body-Tag:

Screenshot des I S 7-Fensters mit Editor mit JavaScript-Code.

Zusammenfassung

In dieser exemplarischen Vorgehensweise haben Sie erfahren, wie Sie Ausgangsregeln im URL-Rewrite-Modul Version 2 verwenden, um den Inhalt einer HTTP-Antwort im laufenden Betrieb zu ändern. Diese Funktion ist nützlich, wenn Sie kleinere Änderungen an den von Webanwendungen generierten HTTP-Antworten vornehmen müssen, aber keine Kontrolle über die Anwendung haben oder es nicht sinnvoll ist, umfangreiche Änderungen an der Anwendung vorzunehmen.