Return-Path: Delivered-To: apmail-httpd-docs-archive@www.apache.org Received: (qmail 72308 invoked from network); 27 Dec 2003 11:25:31 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 27 Dec 2003 11:25:31 -0000 Received: (qmail 95372 invoked by uid 500); 27 Dec 2003 11:25:03 -0000 Delivered-To: apmail-httpd-docs-archive@httpd.apache.org Received: (qmail 95345 invoked by uid 500); 27 Dec 2003 11:25:03 -0000 Mailing-List: contact docs-help@httpd.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: docs@httpd.apache.org Delivered-To: mailing list docs@httpd.apache.org Received: (qmail 95334 invoked from network); 27 Dec 2003 11:25:02 -0000 Message-ID: <3FED6BAE.3070008@t-online.de> Date: Sat, 27 Dec 2003 12:23:26 +0100 From: JGiesecke@t-online.de (Jobst Giesecke) User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:1.0.2) Gecko/20021120 Netscape/7.01 X-Accept-Language: de-de, de MIME-Version: 1.0 To: docs@httpd.apache.org Subject: German translation mod_rewrite, mod_setenvif Content-Type: multipart/mixed; boundary="------------010303080105000500030303" X-Seen: false X-ID: r1UdZuZYweMVDNuFZrH1lcHsJvpEgzan653XF7sK3UNMQuPd8Ieg8i X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N --------------010303080105000500030303 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit --------------010303080105000500030303 Content-Type: text/plain; name="mod_setenvif.xml.de" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="mod_setenvif.xml.de" mod_setenvif Setzen von Umgebungsvariablen auf Basis von Charakteristika der Client-Anfrage. Base mod_setenvif.c setenvif_module

Mit dem Modul mod_setenvif können Umgebungsvariablen entsprechend bestimmter Aspekte der Client-Anfrage gesetzt werden. Diese Umgebungsvariablen können von anderen Teilen des Servers zur Entscheidung über durchzuführende Aktionen herangezogen werden.

Die Direktiven werden in der Reihenfolge ihres Auftretens in den Konfigurationsdateien berücksichtigt, so dass komplexere Sequenzen als im folgenden Beispiel benutzt werden können. Im Beispiel wird der Wert netscape gesetzt, wenn es sich um einen anderen Mozilla-Browser als den Microsoft Internet Explorer handelt.

BrowserMatch ^Mozilla netscape
BrowserMatch MSIE !netscape
Umgebungsvariablen in Apache BrowserMatch Setzt Umgebungsvariablen in Abhängigkeit vom HTTP-Header User-Agent. BrowserMatch Muster [!]Variable[=Wert] [[!]Variable[=Wert]] ... server config virtual hostdirectory .htaccess FileInfo

Die BrowserMatch-Direktive ist ein Sonderfall der SetEnvIf-Direktive, mit der Umgebungsvariablen in Abhängigkeit vom Anfrage-Header User-Agent gesetzt werden. Die beiden folgenden Zeilen bewirken das Gleiche:

BrowserMatchNoCase Robot is_a_robot
SetEnvIfNoCase User-Agent Robot is_a_robot

Weitere Beispiele:

BrowserMatch ^Mozilla forms jpeg=yes Browser=netscape
BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
BrowserMatch MSIE !javascript
BrowserMatchNoCase Setzt ohne Berücksichtigung der Groß- und Kleinschreibung Umgebungsvariablen in Abhängigkeit vom Anfrage-Header User-Agent. BrowserMatchNoCase Muster [!]Variable [=Wert] [[!]Variable[=Wert]] ... server config virtual hostdirectory .htaccess FileInfo Ab Apache 1.2 (in Apache 1.2 befand sich diese Direktive im inzwischen veralteten Modul mod_Browser.)

Die BrowserMatchNoCase-Direktive gleicht semantisch der Direktive BrowserMatch, unterscheidet aber keine Groß- und Kleinschreibung. Ein Beispiel:

BrowserMatchNoCase mac platform=macintosh
BrowserMatchNoCase win platform=windows

Die Direktiven BrowserMatch und BrowserMatchNoCase sind Sonderfälle der Direktiven SetEnvIf und SetEnvIfNoCase. Die beiden folgenden Zeilen bewirken das Gleiche:

BrowserMatchNoCase Robot is_a_robot
SetEnvIfNoCase User-Agent Robot is_a_robot
SetEnvIf Setzt basierend auf Attributen der Anfrage Umgebungsvariablen. SetEnvIf Attribut Muster [!]Variable[=Wert] [[!]Variable[=Wert]] ... server config virtual hostdirectory .htaccess FileInfo

Die SetEnvIf-Direktive definiert basierend auf Attributen der Anfrage Umgebungsvariablen. Mit dem ersten Argument können folgende Attribute angegeben werden:

  1. Ein Header-Feld einer HTTP-Anfrage (weitere Informationen hierzu finden Sie im RFC2616). Zum Beispiel die Felder: Host, User-Agent, Referer oder Accept-Language. Mit einem regulären Ausdruck können mehrere Anfrage-Header angegeben werden.
  2. Eines der folgenden Elemente der Anfrage:
    • Remote_Host - Der Hostname des anfragenden Client (falls verfügbar)
    • Remote_Addr - Die IP-Adresse des anfragenden Client
    • Server_Addr - Die IP-Adresse des die Anfrage empfangenden Servers (erst ab Version 2.0.43)
    • Remote_User - Der authentifizierte Benutzername (falls verfügbar)
    • Request_Method - Die verwendete Methde (GET, POST, usw.)
    • Request_Protocol - Name und Version des Protokolls der Anfrage (z.B. HTTP/0.9, HTTP/1.1 usw.)
    • Request_URI - Die in der HTTP-Anfragezeile angeforderte Ressource (im Allgemeinen der auf das Schema und den Host-Teil folgende Teil ohne die Abfragezeichenfolge)
  3. Der Name einer Umgebungsvariablen aus der Liste der mit der Anfrage verknüpften Variablen. Damit können die SetEnvIf-Direktiven einen Abgleich mit vorherigen Vergleichen vornehmen. Hierfür stehen nur die vorher mit SetEnvIf[NoCase]-Direktiven definierten Umgebungsvariablen zur Verfügung. "Vorher" bedeutet, dass sie auf einer höheren Ebene (beispielsweise auf Serverebene) oder dass sie zuvor im Bereich der aktuellen Direktive definiert wurden. Umgebungsvariablen werden nur berücksichtigt, wenn es keine Übereinstimmung zwischen Anfragecharakteristika gab und kein regulärer Ausdruck als Attribut verwendet wird.

Das zweite Argument (Muster) ist ein Perl kompatibler regulärer Ausdruck, vergleichbar mit einem regulären Ausdruck im egrep-Stil von POSIX.2. Stimmen Muster Muster und Attribut überein, werden die verbleibenden Argumente ausgewertet.

Die übrigen Argumente nennen die Namen zu setzender Variablen sowie optionale Werte, auf die sie gesetzt werden. Sie haben folgende Formen:

  1. VarName oder
  2. !VarName oder
  3. VarName=Wert

In der ersten Variante wird der Wert auf 1 gesetzt. In der zweiten wird die Variable entfernt, wenn sie bereits definiert wurde, und in der dritten wird die Variable auf den angegebenen Wert gesetzt.

Beispiel: SetEnvIf Request_URI "\.gif$" object_is_image=gif
SetEnvIf Request_URI "\.jpg$" object_is_image=jpg
SetEnvIf Request_URI "\.xbm$" object_is_image=xbm
:
SetEnvIf Referer www\.mydomain\.com intra_site_referral
:
SetEnvIf object_is_image xbm XBIT_PROCESSING=1
:
SetEnvIf ^TS* ^[a-z].* HAVE_TS

Die ersten drei Anweisungen setzen die Umgebungsvariable object_is_image, wenn eine Bilddatei angefordert wurde. Die vierte Anweisung setzt intra_site_referral, wenn sich die Seite auf der Website www.mydomain.com befunden hat.

Im letzten Beispiel wird die Umgebungsvariable HAVE_TS gesetzt, wenn die Anfrage Header enthält, die mit "TS" beginnen und deren Werte mit den den Zeichen a bis z beginnen.

Umgebungsvariablen in Apache
SetEnvIfNoCase Setzt basierend auf Attributen Umgebungsvariablen, ohne dabei die Groß- und Kleinschreibung zu beachten. SetEnvIfNoCase Attribut Muster [!]Variable[=Wert] [[!]Variable[=Wert]] ... server config virtual hostdirectory .htaccess FileInfo Apache 1.3 und above

Die SetEnvIfNoCase-Direktive unterscheidet sich von der Direktive SetEnvIf nur dadurch, dass beim Vergleich der regulären Ausdrücke die Groß- und Kleinschreibung unterschieden werden. Ein Beispiel:

SetEnvIfNoCase Host Apache\.Org site=apache

Die Umgebungsvariable site wird auf apache gesetzt, wenn das HTTP-Anfrage-Header-Feld Host: vorhanden ist und Apache.Org, apache.org oder eine andere Kombination enthält.

--------------010303080105000500030303 Content-Type: text/plain; charset=us-ascii --------------------------------------------------------------------- To unsubscribe, e-mail: docs-unsubscribe@httpd.apache.org For additional commands, e-mail: docs-help@httpd.apache.org --------------010303080105000500030303--