# WWWOFFLE Proxy

Falls Sie bisher Version 1.x oder 2.x benutzt haben, lesen Sie bitte die Datei `CHANGES.CONF.de`, dort wird erklärt, welche Abschnitte wie an die neue Version angepaßt werden müssen; und welche neuen Optionen es gibt.

Die Datei `wwwoffle.conf` enthält alle Einstellungen für den Betrieb des Proxy Servers. Die Datei `CHANGES.CONF` enthält Änderungen der Konfiguration im Bezug zu alten Versionen.

Diese Datei ist in Abschnitte (Sektionen, Teile) geteilt, die jeweils die unten angegebenen Parameter enthalten. Die Reihenfolge der Abschnitte in der Konfigurationsdatei ist nicht relevant.

Das Format der einzelnen Abschnitte ist prinzipiell das gleiche. Kommentare werden durch ein `#` eingeleitet, alles was nach diesem Kommentarzeichen in einer Zeile steht, wird ignoriert. Leerzeilen werden ebenfalls als Kommentar betrachtet und ignoriert.

Ein Abschnitt wird durch dessen Namen, gefolgt durch eine öffnende geschweifte Klammer (`{`) eingeleitet, beide in einer eigenen Zeile. Dann folgen die Parameter für diesen Abschnitt. Abgeschlossen wird der Abschnitt durch eine schließende geschweifte Klammer (`}`), wiederum in einer eigenen Zeile. Zum Beispiel:

    StartUp
    {
        Option = Wert
        # Dies ist ein Kommentar
        # Option = Wert            Dies ist auch einer!
        Option = Wert
        ...
    }

Alternativ kann anstatt den Anweisungen in `{ ... }` auch ein Dateiname in eckige Klammern eingeschlossen werden, in dem diese Anweisungen stehen. Zum Beispiel:

    StartUp
    [
    	startup-options.conf
    ]

Um Mißverständnissen vorzubeugen: Der Begriff `INTEGER` gibt eine ganze, i.d.R. natürliche Zahl an. Außerdem ist die erste Spalte in einer hier angezeigten Tabelle, die ein Schlüsselwort der Konfigurationsdatei angibt, immer in einer Zeile zu schreiben, auch wenn der Browser das umbricht.

Die Begriffe `URL-ANGABE, URL-SPECIFICATION, WILDCARD` haben eine spezielle Bedeutung, die am Ende der Datei erklärt wird. Sie erlauben es, eine Option nur für bestimmte Addressen zu aktivieren. Ein in (Klammern) eingeschlossener Begriff ist ein vom Benutzer festzulegender Parameter (zB. ein Kennwort). Optionale Parameter sind in [eckigen Klammern] eingeschlossen, das Pipe-Zeichen `|` zeigt Alternativen auf.

## Abschnitt 'StartUp'

Dieser Abschnitt bestimmt das Verhalten beim Start des Programms, er wird beim erneuten Einlesen der Konfigurationsdatei ignoriert.

`bind-ipv4 = (Rechner) | (IP) | none` | Der Rechner oder die IP-Addresse, auf dem der WWWOFFLE-Server 'horchen' soll. 'none' bedeutet keine IPV4-Addresse wird benutzt.
`bind-ipv6 = (Rechner) | (IP) | none` | Der Rechner oder die IP-Addresse, auf dem der WWWOFFLE-Server 'horchen' soll. 'none' bedeutet keine IPV4-Addresse wird benutzt. Für diese Option muß WWWOFFLE mit IPv6-Support übersetzt worden sein.
`http-port = PORT` | Der Port, welchen der Proxy für Daten benutzen soll. (Standard: 8080)
`wwwoffle-port = PORT` | Der Port, welchen der Proxy für Kontrollverbindungen nutzen soll. (Standard: 8081)
`spool-dir = VERZEICHNIS` | Das Verzeichnis für den Cache (normalerweise `/var/spool/wwwoffle`).
`run-uid = BENUTZER / UID` | Als welcher Benutzer (-name, -ID) soll der Proxy laufen? (Standard: keiner, d.h. WWWOFFLE ändert dies nicht selbst).
`run-gid = GRUPPE / GID` | In welcher Benutzergruppe soll WWWOFFLE laufen? (Standard siehe `run-uid`).
`use-syslog = yes|no` | Soll die `syslog` Funktion für Meldungen benutzt werden? (Standard: ja).
`password = IRGENDWAS` | Das Kennwort für die Authentizierung in der Web-Oberfläche.
`max-servers = INTEGER` | Die maximale Anzahl von Serverprozessen, die gleichzeitig laufen. (Standard: 8).
`max-fetch-servers = INTEGER` | Die maximale Anzahl von Serverprozessen, die gleichzeitig Bestellungen herunterladen. (Standard: 8)

Wichtig: Damit die Kennwort-Authentikation funktioniert, muß die Konfigurationsdatei von WWWOFFLE natürlich so angelegt werden, daß nur Benutzer sie lesen können, die auch auf diese Funktionen zugreifen dürfen. Die `run-uid` und `run-gid` Optionen sind unter Windows unwirksam. Um sie überhaupt benutzen zu können, muß der Server als `root` gestartet werden - sonst kann er seine eigenen Rechte nicht ändern. Die Option `max-fetch-servers` sollte unbedingt kleiner sein als `max-servers` -- sonst können Sie WWWOFFLE nicht benutzen, während er Bestellungen herunterlädt!

## Abschnitt 'Options'

Dieser Abschnitt deckt allgemeine Einstellungen ab.

`log-level = ANGABE` | Nachrichten, die mindestens die angegebene Priorität haben, werden protokolliert. Mögliche Prioritätsangaben sind: `debug, info, important, warning, fatal`
`connect-timeout = ZEIT` | Die Zeit, die WWWOFFLE auf einen Verbindungsaufbau wartet, bevor es die Verbindung aufgibt (Standard: 60, Angaben in Sekunden).
`connect-retry = yes | no` | Falls eine Verbindung nicht erfolgreich war, soll WWWOFFLE automatisch nach einer kurzen Pause einen weiteren Versuch starten? (Standard: no).
`socket-timeout = ZEIT` | Die Zeit, die WWWOFFLE auf Daten aus einer bestehenden Verbindung wartet, bevor es die Verbindung aufgibt (Standard: 120, Angaben in Sekunden).
`dns-timeout = ZEIT` | Die Zeit, die WWWOFFLE auf DNS-Antworten wartet, bevor es die Verbindung aufgibt (Standard: 60, Angaben in Sekunden).
`ssl-allow-port = INTEGER` | Die Port-Nummer für 'Secure Socket Layer (SSL)' Verbindungen, zum Beispiel 'https'.
`dir-perm = (Oktalzahl)` | Verzeichnisrechte im Cache/Spool-Verzeichnis (Standard: 0755). Dies überschreibt die 'umask' des Benutzers unter dem WWWOFFLE läuft. Die Zahl muß in Oktalschreibweise (führende Null) angegeben werden.
`file-perm = (Oktalzahl)` | Dateirechte im Cache/Spool-Verzeichnis (Standard: 0755). Dies überschreibt die 'umask' des Benutzers unter dem WWWOFFLE läuft. Die Zahl muß in Oktalschreibweise (führende Null) angegeben werden.
`run-online = (Dateiname)` | Name eines Programmes, das beim Schalten in den Online-Modus ausgeführt werden soll. Das Programm wird mit dem Parameter 'online' gestartet.
`run-offline = (Dateiname)` | Name eines Programmes, das beim Schalten in den Offline-Modus ausgeführt werden soll. Das Programm wird mit dem Parameter 'offline' gestartet.
`run-fetch = (Dateiname)` | Name eines Programmes, das beim Start und Ende des Herunterladens von Bestellungen ausgeführt werden soll. Das Programm wird mit den zwei Parametern 'fetch start' bzw. 'fetch stop' gestartet.
`run-autodial = (Dateiname)` | Name eines Programmes, das beim Schalten in den AutoDial-Modus ausgeführt werden soll. Das Programm wird mit dem Parameter 'autodial' gestartet.
`lock-files = yes|no` | Schaltet das Dateisperren an/aus (dies verhindert, daß zwei WWWOFFLE-Prozesse gleichzeitig dieselbe Datei herunterladen).
`reply-compressed-data = yes|no` | Schaltet das Komprimieren von Dateien beim Weiterleiten zum Browser an/aus. Diese Option erfordert die Übersetzung mit aktivierter 'zlib'-Option und ist sehr zu empfehlen, wenn Ihr WWWOFFLE-Server auf der anderen Seite einer langsamen Verbindung steht (z.B. einer Modemstrecke).

Wichtig: Die Option `ssl-allow-port` sollte für `https://` Verbindungen auf 443 gestellt werden. Es können für andere Verbindungen weitere SSL-Ports definiert werden.

## Abschnitt 'OnlineOptions'

Dieser Abschnitt steuert das Verhalten im Online-Modus.

`[URL-ANGABE] request-changed = ZEIT` | Wenn im `online` Modus, wird eine Datei/Seite nur erneut heruntergeladen, wenn sie älter als die hier angegebene Zeit ist (Standard: 600, das entspricht 10 Minuten).
`[URL-ANGABE] request-changed-once = yes | no` | Wenn im `online` Modus, wird eine Datei/Seite nur erneut heruntergeladen, wenn sie in dieser Sitzung nicht schon einmal erneuert/geholt wurde (Standard: yes).
`[URL-ANGABE] request-expired = yes | no` | Wenn im `online` Modus, wird eine Seite erneut heruntergeladen, wenn sie abgelaufen ist (Standard: no).
`[URL-ANGABE] request-no-cache = yes | no` | Steuert, ob Seiten erneut heruntergeladen werden, die nicht zwischengespeichert werden sollen (Standard: no). Dies hat Vorrang vor der `'request-changed-once'` Option.
`[URL-ANGABE] try-without-password = yes | no` | Soll eine Seite, die mit Benutzernamen und Kennwort-Angaben aufgerufen wird, erst versuchsweise ohne diese Angaben heruntergeladen werden? Dies erlaubt es u.U., den Browser automatisch auf die kennwortgeschützte Seite weiterzuleitern.
`[URL-ANGABE] intr-download-keep = yes | no` | Wenn die Verbindung zum Browser während eines Downloads unterbrochen wird, soll dann die 'halbe' Datei behalten werden? Zu beachten ist, daß diese 'halbe' Datei u.U. nicht vor Ablauf der 'request-changed' Zeit erneut geholt wird (Standard: no).
`[URL-ANGABE] intr-download-size = yes | no` | Wie groß muß eine Datei mindestens sein, damit sie trotz unterbrochener Verbindung zum Browser von WWWOFFLE fertig heruntergeladen wird? (Standard: 1kb)
`[URL-ANGABE] intr-download-percent = yes | no` | Wieviel Prozent einer Datei müssen mindestens bereits heruntergeladen worden sein, damit WWWOFFLE bei Unterbrechung der Verbindung zum Browser (Benutzer hat z.B. auf 'STOP' geklickt) den Download in den Cache trotzdem beendet? (Standard: 80)
`[URL-ANGABE] request-compressed-data = yes | no` | Soll WWWOFFLE versuchen, die vom Server angeforderten Dokumente in komprimierter Form zu übertragen? Dies spart erhebliche Downloadzeit (bis zu Faktor 10, je nach Art der Daten) und ist daher standardmäßig eingeschaltet, wird aber nicht von jedem Server unterstützt.

Wichtig: Die Option `request-changed` kann negative Werte enthalten, dies bedeutet, daß lokal bereits vorhandene Seiten in jedem Fall einem erneuten Herunterladen vorgezogen werden. Die Option `request-changed-once` "wiegt stärker" als die Option `request-changed`. Sie sollte auf no gesetzt werden, falls Sie eine ständige Verbindung zum Netz haben. Die Option `pragma-no-cache` sollte auf `no` gesetzt werden, falls mit bestimmten Browsern sämtliche solche Seiten erneut bestellt werden.

## Abschnitt 'OfflineOptions'

Dieser Abschnitt steuert das Verhalten im Offline-Modus.

`[URL-ANGABE] pragma-no-cache = yes | no` | Verhalten bei einer Seite, die mit dem Attribut 'pragma: no-cache' versehen wurde (Standard: yes, d.h. die Seite wird erneut heruntergeladen).
`[URL-ANGABE] confirm-requests = yes | no` | Bestätigung bei einer Bestellung im `offline` Modus fordern, anstatt die Seite sofort zu bestellen (Standard: no).
`[URL-ANGABE] dont-request = yes | no` | Keine Bestellungen für diese Adresse annehmen.

## Abschnitt 'FetchOptions'

Dieser Abschnitt steuert das Verhalten beim Herunterladen von bestellten Seiten.

`stylesheets = yes | no` | Sollen HTML Style Sheets mit heruntergeladen werden?
`images = yes | no` | Sollen Bilder mit heruntergeladen werden?
`frames = yes | no` | Sollen HTML Frames mit heruntergeladen werden?
`scripts = yes | no` | Sollen Scripts (z.B. Javascript) mit heruntergeladen werden?
`objects = yes | no` | Sollen Objekte (z.B. Java Klassendateien) mit heruntergeladen werden?
`webbug-images = yes | no` | Sollen Ein-Pixel-Dateien mit heruntergeladen werden? (Nur wenn ebenfalls 'images = yes') Diese Option soll in Zusammenhang mit der 'replace-webbug-images' Option im ModifyHTML-Abschnitt benutzt werden.

Wichtig: Alle diese Optionen haben als Standardeinstellungen 'no'.

## Abschnitt 'IndexOptions'

`no-lasttime-index = yes | no` | Schaltet die Erstellung des "Letztes Mal" Indexes aus.
`[URL-ANGABE] list-outgoing = yes | no` | Soll die angegebene URL (alle, wenn keine URL angegeben) unter 'Bestellungen' angezeigt werden?
`[URL-ANGABE] list-latest = yes | no` | Soll die angegebene URL (alle, wenn keine URL angegeben) in den 'Letztes Mal' Listen angezeigt werden?
`[URL-ANGABE] list-monitor = yes | no` | Soll die angegebene URL (alle, wenn keine URL angegeben) in der Abonnements-Liste angezeigt werden?
`[URL-ANGABE] list-host = yes | no` | Soll die angegebene URL (alle, wenn keine URL angegeben) in der Hosts-Liste angezeigt werden?
`[URL-ANGABE] list-any = yes | no` | Soll die angegebene URL (alle, wenn keine URL angegeben) in allen Listen angezeigt werden?

Wichtig: Alle 'list-*' Optionen haben als Standardeinstellungen 'yes'.

## Abschnitt 'ModifyHTML'

Dieser Abschnitt erlaubt es, die HTML Dateien, die im Cache gespeichert werden, zu verändern, und zu kontrollieren auf welche Art und Weise diese Veränderungen geschehen.

`[URL-ANGABE] enable-modify-html = yes | no` | Die Programmfunktionen für die HTML-Veränderung einschalten. Diese Option ist hier enthalten, weil die alleinige Präsenz des Programmteils, das diesen Abschnitt auswertet, schon (etwas) Geschwindigkeit kostet -- auch wenn es gar nichts tut. (Standard: yes) Falls deaktiviert, haben die nachfolgenden Optionen keine Auswirkung.
`[URL-ANGABE] add-cache-info = yes | no` | Soll am Ende jeder Seite eine WWWOFFLE Informationszeile über diese Seite eingesetzt werden (enthält Alter der Seite im Cache, Möglichkeiten zum Aktualisieren uvm.) (Standard: no).
`[URL-ANGABE] anchor-cached-begin = HTML code` | Verweise (Links), deren Adresse im Cache vorhanden sind, werden am Anfang mit dem hier angegebenen HTML Code ergänzt (Standard: keiner). Hiermit lassen sich Verweise auf Seiten, die bereits heruntergeladen wurden, hervorheben; damit vermeidet man ungewollte Verbindungsaufbauten (auf einem Dial on Demand System).
`[URL-ANGABE] anchor-not-cached-begin = HTML code` | Verweise (Links), deren Adresse nicht im Cache vorhanden sind, werden am Anfang mit dem hier angegebenen HTML Code ergänzt (Standard: keiner).
`[URL-ANGABE] anchor-requested-begin = HTML code` | Verweise (Links), deren Adresse bestellt wurden, werden am Anfang mit dem hier angegebenen HTML Code ergänzt (Standard: keiner).
`[URL-ANGABE] anchor-cached-end = HTML code` | Verweise (Links), deren Adresse im Cache vorhanden sind, werden am Ende mit dem hier angegebenen HTML Code ergänzt (Standard: keiner).
`[URL-ANGABE] anchor-not-cached-end = HTML code` | Verweise (Links), deren Adresse nicht im Cache vorhanden sind, werden am Ende mit dem hier angegebenen HTML Code ergänzt (Standard: keiner).
`[URL-ANGABE] anchor-requested-end = HTML code` | Verweise (Links), deren Adresse bestellt wurde, werden am Ende mit dem hier angegebenen HTML Code ergänzt (Standard: keiner).
`[URL-ANGABE] disable-script = yes|no` | Filtert alle Skript-Events heraus.
`[URL-ANGABE] disable-applet = yes|no` | Filtert alle Applets heraus.
`[URL-ANGABE] disable-style = yes|no` | Filtert alle CSS-Stylesheet-Angaben heraus.
`[URL-ANGABE] disable-blink = yes|no` | Filtert das `<BLINK>` Tag heraus.
`[URL-ANGABE] disable-meta-refresh = yes|no` | Entfernt META-Tags, die den Browser (u.U. mit Zeitverzögerung) zu einer anderen Seite weiterleiten.
`[URL-ANGABE] disable-meta-refresh-self = yes|no` | Entfernt META-Tags, die den Browser (u.U. mit Zeitverzögerung) zu derselben Seite weiterleiten, d.h. die Seite erneut laden.
`[URL-ANGABE] disable-dontget-links = yes|no` | Entfernt Verweise (Links) zu Seiten, die im DontGet-Abschnitt erwähnt wurden.
`[URL-ANGABE] disable-dontget-images = yes|no` | Ersetzt Verweise (Links) zu Grafiken, die im DontGet-Abschnitt erwähnt wurden.
`[URL-ANGABE] replacement-dontget-image = yes|no` | Die Ersatzgrafik für Grafiken und Bilder im DontGet-Abschnitt (Standard: `/local/dontget/replacement.gif`).
`[URL-ANGABE] replacement-webbug-images = yes|no` | Ersetzt Grafiken, die 1 Pixel messen, mit einer statischen URL (Standard: no). Diese Option soll in Zusammenhang mit der 'webbug-images' Option im FetchOptions-Abschnitt benutzt werden.
`[URL-ANGABE] disable-animated-gif = yes|no` | Entfernt Animation aus GIF-Dateien (Standard: no).
`[URL-ANGABE] demoronize-ms-chars = yes|no` | Ersetzt merkwürdige Zeichen und fehlerhaftes HTML, welches von Microsoft-Anwendungen erzeugt wird (Frontpage, Word usw.) durch äquivalente Zeichen(ketten), die jeder Browser versteht. Die Idee für dieses Feature kam aus einem Perlskript, welches für HTML-Dateien dasselbe macht.

Wichtig: Diese Optionen funktionieren nur korrekt, wenn der angegebene HTML Code auch syntaktisch korrekt ist. Ist er das nicht, ist das Resultat undefiniert.

## Abschnitt 'LocalHost'

Dieser Abschnitt enthält eine Liste von Rechner(Host-)namen bzw. IP-Adressen, unter denen der Rechner, auf dem WWWOFFLE läuft, anderen Rechnern bekannt ist. Hiermit wird vermieden, daß sich der Proxy mit sich selbst unterhalten muß, um an seine eigenen Seiten heranzukommen (was etwas blödsinnig wäre).

`HOSTNAME / IP` | Ein Hostname (Rechnername) oder eine IP-Adresse, unter welcher in Verbindung mit der im Abschnitt StartUp Portnummer der WWWOFFLE Server erreichbar ist.

Wichtig: Die Namen müssen exakt übereinstimmen, Platzhalter/Wildcards sind nicht erlaubt (`*, ?,` usw.) Alle hier angegebenen Namen/Adressen werden auch behandelt wie die im Abschnitt LocalNet und AllowedConnects angegebenen Namen/Adressen. Der erste hier angegebene Name wird als der Proxy-Server Name benutzt, der Proxy-Server muß daher unter diesem Namen netzwerkweit erreichbar sein (insofern ist `localhost` unsinnig!). Keiner der Einträge hier oder im Abschnitt LocalNet werden durch einen Proxy geholt.

## Abschnitt 'LocalNet'

Dieser Abschnitt enthält eine Liste von Rechnernamen/IP-Adressen, die auf keinen Fall in den Cache gelangen, weil sie im lokalen Netzwerk liegen.

`HOSTNAME / IP` | Ein Rechner/Hostname oder eine IP-Adresse, die als 'lokal' behandelt und nicht zwischengespeichert werden soll.

Wichtig: Hier werden Platzhalter/Wildcards (`*, ?, ..`) unterstützt, siehe Abschnitt Wildcards. Alle hier angegebenen Rechner werden als 'auch im `offline` Modus erreichbar' angesehen. Alle Rechner im Abschnitt LocalHost werden ebenfalls nicht zwischengespeichert. Keine der hier oder in LocalHost angegebenen Rechner werden durch einen Proxy angesprochen.

## Abschnitt 'AllowedConnectHosts'

Dieser Abschnitt gibt eine Liste von Rechnern an, mit denen WWWOFFLE kommunizieren, i.e. Verbindungen aufbauen/annehmen, darf.

`HOST(s)` | Rechner/Hostname oder IP Adresse.

Wichtig: Hier werden Platzhalter/Wildcards (`*, ?, ..`) unterstützt, siehe Abschnitt Wildcards. Allen Rechnern im Abschnitt LocalHost wird ebenfalls eine Verbindung gewährt.

## Abschnitt 'AllowedConnectUsers'

Dieser Abschnitt enthält eine Liste von Benutzen (mit Kennwörtern), die zum WWWOFFLE Proxy Verbindung aufnehmen dürfen.

`BENUTZER:KENNWORT` | Benutzername und Kennwort, getrennt durch einen Doppelpunkt (ohne Leerzeichen dazwischen!).

Wichtig: Sowohl Benutzername als auch Kennwort werden im Klartext gespeichert. Diese Funktion erfordert die Benutzung eines Browsers, der die HTTP/1.1 Erweiterungen versteht.

## Abschnitt 'DontCache'

Dieser Abschnitt enthält eine Liste von URLs/Adressen, die nicht lokal von WWWOFFLE gespeichert werden sollen.

`URL-ANGABE` | Diese URL/Adresse nicht lokal speichern.

Wichtig: Die Seiten werden jedoch heruntergeladen, wenn sie bestellt oder abonniert wurden. Eine Erklärung des Begriffes `URL-ANGABE` gibt es am Ende dieses Textes.

## Abschnitt 'DontGet'

Dieser Abschnitt enthält eine Liste von URLs/Adressen, die gar nicht erst heruntergeladen werden sollen. Dies ist sehr praktisch für Banner-Werbung oder ähnlichem.

`URL-ANGABE` | Diese URL/Adresse nicht herunterladen.
`[URL-ANGABE] replacement = (URL-ANGABE)` | (Optional) anstatt der angegebenen URL-ANGABE diese Seite anzeigen (sie könnte z.B. eine spezielle Fehlermeldung anzeigen oder ähnliches) (Standard: keine).
`[URL-ANGABE] get-recursive = yes|no` | Sollen auf diese URL-ANGABE passende Adressen auch bei einer Bestellung heruntergeladen werden? (Standard: yes).
`[URL-ANGABE] location-error = yes|no` | Wenn als Antwort vom Server ein 'Location:' Header zurückkommt (der den Browser umleitet) und das Umleitungsziel in diesem Abschnitt steht, soll die Antwort zu einer Fehlermeldung werden? Dies verhindert, daß Provider-Proxies transparent Werbung einblenden, wenn die Werbe-URLs hier genannt werden.

Wichtig: Der Begriff `URL-ANGABE` wird am Ende des Textes erklärt. Für Bilder, die nicht heruntergeladen werden sollen, ist ein passender Ersatz ein 1x1 Pixel großes .GIF Bild, welches unter `/local/dontget/replacement.gif` bei WWWOFFLE mitgeliefert wird.

## Abschnitt 'DontCompress'

Dieser Abschnitt kontrolliert, welche MIME-Typen / Dateien nicht komprimiert werden sollen (z.B. weil sie schon komprimiert sind, oder nicht gut komprimierbar sind). Dieser Abschnitt erfordert, daß die 'zlib' Option bei der Übersetzung benutzt wurde.

`mime-type = (MIME-Typ)/(MIME-Subtyp)` | Keine Kompression für diesen MIME-Typen benutzen (weder im Cache noch auf dem Weg zum Browser).
`file-ext = .(Dateierweiterung)` | Keine Kompression für diese Dateien benutzen (weder im Cache noch auf dem Weg zum Browser).

## Abschnitt 'CensorHeader'

Dieser Abschnitt enthält eine Liste von HTTP Kopf (Header-) Zeilen, die geändert oder herausgefiltert werden sollen.

`[URL-ANGABE] (Header) = (Text) | no | yes` | Ein HTTP Header-Feld (z.B. `From, Cookie, User-Agent, ..`) und der Text, der stattdessen gesendet werden soll. 'no' bedeutet, daß der Header nicht verändert wird, 'yes' (oder gar nichts) bedeutet, daß er komplett entfernt wird.
`[URL-ANGABE] referer-self = yes | no` | Den HTTP-Header `referer` auf die URL setzen, die gerade geladen wird (und nicht die letzte). Standard: nein.
`[URL-ANGABE] referer-self-dir = yes | no` | Den HTTP-Header `referer` auf den Verzeichnisnamen der angeforderten URL setzen. Standard: nein.

Wichtig: Die Header-Zeilen unterscheiden Groß/Kleinschreibung und werden nicht durch einen Doppelpunkt abgeschlossen. Es kann der Wert `'none'` angegeben werden, um den Header ganz zu entfernen, oder der Rest der ZEile nach dem Gleichzeichen einfach leergelassen werden. Es werden nur gefundene Headerzeilen ersetzt, es werden keine hinzugefügt! Die Option `'referer-self-dir'` "wiegt stärker" als `'referer-self'`.

## Abschnitt 'FTPOptions'

Dieser Abschnitt beschreibt Optionen, die für die Benutzung von FTP (File Transfer Protocol) relevant sind.

`anon-username = TEXT` | Der Benutzername, der für anonymen FTP-Zugang benutzt werden soll (Standard: 'anonymous').
`anon-password = TEXT` | Das Kennwort, welches für anonymen FTP-Zugang benutzt werden soll (Standard: Ihre zur Laufzeit ermittelte eMail-Adresse).
`[URL-ANGABE] auth-username = TEXT` | Benutze für die Addresse URL-ANGABE diesen Benutzernamen, ...
`[URL-ANGABE] auth-password = TEXT` | ... und dieses Kennwort.

Wichtig: Das 'anonymous'-Kennwort sollte mit Bedacht gewählt werden, besonders wenn Sie hinter einem Firewall sitzen. Die Option `'auth-hostname'` muß exakt stimmen, es dürfen keine Wildcards wie `'*', '?'` etc. benutzt werden.

## Abschnitt 'MimeTypes'

Dieser Abschnitt enthält eine Liste von MIME-Typen, die benutzt werden sollen, falls eine Dateiq direkt übertragen wird (nicht via HTTP), um den richtigen Dateitypen zu erkennen.

`default = mimetype/subtype` | Der Standard-MIME Typ (Standard: `'text/plain'`).
`.EXT = mime-type/subtype` | Der MIME Typ, der bei der Datei mit der angegebenen EXTension benutzt werden soll.

Wichtig: Sie müssen den Punkt bei der Dateierweiterung mit angeben. Falls mehrere Erweiterungen auf eine Datei passen, wird die längste benutzt.

## Abschnitt 'Proxy'

Dieser Abschnitt bestimmt die externen Proxies (z.B. Ihres Providers), die WWWOFFLE selber benutzen soll.

`[URL-ANGABE] proxy = PROXYADDRESSE[:PORT]` | Eine Proxy-Adresse, die für bestimmte URLs/Adressen benutzt werden soll.
`[URL-ANGABE] auth-username = TEXT` | Der Benutzername für die Authentikation. URL-ANGABE ist die Addresse des betreffenden Proxies.
`[URL-ANGABE] auth-password = TEXT` | Das Kennwort für die Authentifikation. URL-ANGABE ist die Addresse des betreffenden Proxies.
`[URL-ANGABE] ssl = RECHNER[:PORT]` | Ein Proxy, welcher für SSL (Secure Socket Layer) Verbindungen genutzt werden soll (z.B. `'https'`). Die URL-ANGABE wird hier nur auf den Rechnernamen geprüft; Protokoll, Port usw. müssen '*' Wildcards sein.

Wichtig: Der Begriff `'URL-ANGABE'` wird am am Ende des Textes erklärt. Eine Adresse, der auf mehrere URL-ANGABEn paßt, wird über den am genauesten angegebenen Proxy angefordert. Beispiel: Wenn `'*.de'` über Proxy 1 geholt werden soll und `'*.linux.de'` über Proxy 2, dann wird die URL `'www.linux.de'` über Proxy 2 angefordert. Die Angabe `'none'` verhindert die Benutzung von einem Proxy für ein bestimmtes Protokoll oder eine URL. Keiner der Adressen in LocalHost oder LocalNet werden durch einen dieser Proxies angesprochen.

## Abschnitt 'Alias'

Dieser Abschnitt beschreibt eine Liste von Alias-Namen, die den WWWOFFLE Server dazu bringen, bestimmte URLs (d.h. Adressen) umzuleiten.

`URL-ANGABE = URL-ANGABE` | Alle Anfragen für die erste URL-ANGABE werden mit der zweiten URL-ANGABE beantwortet, d.h. der Inhalt der zweiten URL-ANGABE wird gesendet.

Wichtig: Der Begriff 'URL-ANGABE' wird am Ende dieses Textes erklärt. Symbolische Links im Spool-Verzeichnis funktionieren, aber werden nur geprüft, wenn WWWOFFLE gestartet wird, oder mit der Option `wwwoffle -config` die Konfiguration neu eingelesen wird. Die 'URL-ANGABE' darf keine Platzhalter/Wildcards wie `'*'` etc enthalten.

## Abschnitt 'Purge'

Dieser Abschnitt beschreibt, welche Seiten, wann, aus dem Cache entfernt werden sollen ('entfernen' =~ 'purge'). Eine Maximalgröße für den Cache kann auch bestimmt werden.

`use-mtime = yes|no` | Welche Dateiattribute sollen für die Bestimmung des Alters benutzt werden: `atime` (letzter Zugriff) oder `mtime` (letzte Änderung)? (Standard: no, also atime).
`max-size = GROESSE` | Maximalgröße des Caches in Megabytes.
`min-free = GROESSE` | Der minimale Plattenplatz, der nach dem Entfernen von alten Dateien wieder frei geworden sein muß. '0' heißt es gibt keine Beschränkung. Diese Option berechnet URLs in die Cache-Größe mit ein, die niemals gelöscht werden; löscht sie aber auch niemals. Falls die nötige Cache-Größe für den hier angegebenen Wert kleiner ist als 'max-size', bekommt dieser Wert Vorrang.
`use-url = yes|no` | Sollen zusätzlich URL-spezifische Einstellungen geprüft werden? (Standard: nein, d.h. nur protokoll/host-weise Einstellungen prüfen)
`del-dontget = yes|no` | Sollen Inhalte von Rechnern/Hosts, die aus dem DontGet Abschnitt kommen, gelöscht werden? (Standard: nein).
`del-dontcache = yes|no` | Sollen Inhalte von Rechnern/Hosts, die aus dem DontCache Abschnitt kommen, gelöscht werden? (Standard: nein).
`[URL-ANGABE] age = ALTER` | Maximalalter für Seiten aus URL-ANGABE in Tagen (Standard: 14). Es können Einheiten benutzt werden (z.B. 2w=14, 1m=31, 1y=365).
`[URL-ANGABE] compress-age = ALTER` | Das maximale Alter für unkomprimiert gespeicherte Seiten, die auf URL-ANGABE passen. (Benötigt zlib.) Siehe auch 'age' Option.

Wichtig: Der Begriff 'URL-ANGABE' wird am Ende dieses Textes erklärt. Wird ein Rechner/Host mehrmals angegeben, wird das am genauesten angegebene Alter genommen. Siehe dazu auch die Bemerkungen im Abschnitt Proxy. Ein Alter von '0' (Null) heißt, sofort löschen (bzw. gar nicht erst speichern). Ein negatives Alter heißt, gar nicht löschen. Eine Maximalgröße von '0' für den Cache bedeutet, es gibt keine Begrenzung. Die Größe des Caches wird aus den gespeicherten URLs bestimmt, die keine negative Altersangabe besitzen. Die 'URL-ANGABE' wird nur auf Protokoll und Rechner/Hostname geprüft, außer `use-url` ist aktiviert (dies drückt allerdings die Geschwindigkeit etwas).

## Wildcards / Platzhalter

Ein Platzhalter/'Wildcard' ist z.B. das Zeichen `'*'`, welches für eine beliebige Anzahl von beliebigen Zeichen steht.

Im Prinzip ist dies das gleiche, was in einer Shell (oder unter DOS) auch gilt, mit der Ausnahme, daß hier der Stern auch für einen Pfadtrenner (`'/'`) oder einen Punkt stehen kann.

Beispiele:

`*.gif` | paßt auf | `foo.gif` und `bar.gif`
`*.foo.comf` | paßt auf | `www.foo.com` und `ftp.foo.com`
`/foo/*` | paßt auf | `/foo/bar.html` und `/foo/bar/foobar.html`

## URL-ANGABE

Wenn Sie einen Rechner/Host oder eine URL angeben, besteht diese Angabe meistens aus mehreren Informationen, die WWWOFFLE auf eine bestimmte Weise auswertet.

Eine URL besteht normalerweise aus vier Teilen:

`proto` | Das Protokoll, welches benutzt wird, zum Beispiel `HTTP` oder `FTP`.
`host` | Der Rechner-/Hostname, der angesprochen werden soll, z.B. `www.gedanken.demon.co.uk`.
`port` | Der Port des Rechners, der angesprochen werden soll, z.B. 80 für HTTP oder 21 für FTP.
`path` | Der Pfad des Verzeichnisses/der Datei, die angesprochen werden soll, z.B. `/foo/`.
`args` | Optionale Parameter, die an ein Dokument übergeben werden (z.B. wenn es ein Skript ist), z.B. `blubb=25b`.

Dies wird normalerweise so zusammengeknüpft:

`PROTO://HOST[:PORT]/PATH[?ARGS]`

Eckige Klammern (`[]`) bedeuten, daß man die entsprechende Angabe auch weglassen kann (bei HTTP ist der Port fast immer 80 und Parameter werden nicht immer benutzt).

Normalerweise wird in dieser Konfiguration folgende Syntax benutzt:

`*://*` | Protokoll, Rechner, Port, Pfad beliebig (dies ist der Standard).
`*://*/PFAD` | Protokoll, Rechner, Port beliebig, PFAD angegeben.
`*://*/*.EXT` | Protokoll, Rechner, Port beliebig, Datei-Erweiterung/-typ angegeben.
`*://HOST` | Protokoll/Port/Pfad beliebig, Rechner/HOST angegeben.
`PROTO://` | Protokoll angegeben, Rest beliebig.
`PROTO://HOST` | Protokoll und Rechner/Host angegeben, Rest beliebig.
`PROTO://HOST:` | Protokoll und Rechner angegeben, Standard-Port (je nach Protokoll), Pfad beliebig.
`PROTO://HOST:PORT` | Protokoll, Rechner und Port angegeben, Pfad beliebig.

Die Pfade und Hostnamen werden mit denselben Wildcards behandelt und interpretiert, wie sie oben beschrieben werden. The matching of the host and the path use the wildcard matching that is described above.

Die Übersetzung dieses Dokumentes wurde von Jens Benecke erstellt. Es gelten die gleichen Lizenzbestimmungen wie für das gesamte WWWOFFLE Paket, ich betrachte die von mir übersetzte Dokumentation als Teil der Software. Jeder, der dieses Dokument liest, sollte sich moralisch verpflichtet fühlen, mir Fehler oder Unstimmigkeiten sofort per eMail mitzuteilen ;-)