# WWWOFFLE - Fichier de configuration - Version 2.7

## Introduction

Le fichier de configuration (wwwoffle.conf) spécifie tous les paramètres qui contrôlent l'activité du serveur proxy. Le fichier est divisé en sections décrites ci-dessous contenant chacune une série de paramètres. Le fichier CHANGES.CONF explique les changements de ce fichier de configuration par rapport aux versions précédentes.

Le fichier est divisé en sections, chacune pouvant être vide ou contenir une ou plusieurs lignes d'information de configuration. Les sections sont nommées, et leur ordre d'apparition dans le fichier n'est pas important.

Le format général de chacune des sections est le même. Le nom de la section est sur une ligne, et en marque le début. Le contenu de la section est délimité par une paire de lignes contenant seulement les caractères '{' et '}', ou '[' et ']'. Quand la paire '{' et '}' est utilisée, les lignes encloses contiennent des informations de configuration. Quand la paire '[' et ']' est utilisée, il doit y avoir à l'intérieur de cette dernière une seule ligne non vide, contenant le nom d'un fichier (dans le même répertoire) contenant les lignes de configuration de cette section.

Les commentaires sont signalés par le caractère '#' au début de la ligne, et sont ignorés. Les lignes vides sont aussi permises et ignorées.

Les entités URL-SPECIFICATION (URL-SPEC en abrégé) et WILDCARD ont une signification particulière dans le fichier de configuration, et sont décrites à la fin. Toute entité enclose entre parenthèses '(' et ')' dans les descriptions signifie un paramètre fourni par l'utilisateur, tout ce qui est entre crochets '[' et ']' est optionnel, et la barre verticale '|' indique une alternative. Certaines options s'appliquent seulement à des URL, ceci est précisé par une URL-SPECIFICATION enclose entre '<' & '>' dans l'option, la première URL-SPECIFICATION qui correspond au motif est utilisée. Si aucune URL-SPECIFICATION n'est donnée, alors toute URL correspond.

## StartUp

Cette section contient les paramètres utilisés au lancement du programme, les changements éventuels sont ignorés si la configuration est relue pendant l'exécution.

### bind-ipv4 = (hostname) | (ip-address) | none

Spécifie le nom d'hôte ou l'adresse IP où lier les sockets proxy HTTP et port de contrôle WWWOFFLE utilisant IPv4 (par défaut '0.0.0.0'). Si 'none' est indiqué, alors aucun socket IPv4 n'est utilisé.

### bind-ipv6 = (hostname) | (ip-address) | none

Spécifie le nom d'hôte ou l'adresse IP où lier les sockets proxy HTTP et port de contrôle WWWOFFLE utilisant IPv6 (par défaut '::'). Si 'none' est indiqué, alors aucun socket IPV6 n'est utilisé. L'option de compilation IPv6 est requise.

### http-port = (port)

Un entier indiquant le port du serveur proxy (8080 par défaut).

### wwwoffle-port = (port)

Un entier indiquant le port de contrôle WWWOFFLE (8081 par défaut).

### spool-dir = (dir)

Le chemin complet du répertoire de cache (répertoire de spool) (défaut=/var/spool/wwwoffle).

### run-uid = (user) | (uid)

Le nom d'utilisateur ou le numéro UID sous lequel le serveur WWWOFFLE est lancé (défaut=aucun). Cette option n'est pas applicable sous win32 et ne fonctionne que si le serveur est lancé par l'utilisateur root sous UNIX.

### run-gid = (group) | (gid)

Le groupe ou le numéro GID sous lequel le serveur WWWOFFLE est lancé (défaut=aucun). Cette option n'est pas applicable sous win32, et ne fonctionne que si le serveur est lancé par l'utilisateur root sous UNIX.

### use-syslog = yes | no

Indique si le service syslog est utilisé pour les messages (défaut=yes).

### password = (word)

Le mot de passe utilisé pour l'authentification des pages de contrôle, pour l'effacement des pages mémorisées, etc. (défaut=aucun). Pour sécuriser la configuration, la lecture du fichier de configuration doit être réservée aux utilisateurs autorisés.

### max-servers = (integer)

Le nombre maximum de processus serveurs lancés en ligne et pour le rapatriement automatique (défaut=8).

### max-fetch-servers = (integer)

Le nombre maximum de serveurs lancés pour le rapatriement automatique des pages demandées en mode hors-ligne (défaut=4). Cette valeur doit être inférieure à max-servers pour permettre l'usage interactif simultané.

## Options

Options contrôlant le fonctionnement du programme

### log-level = debug | info | important | warning | fatal

Le niveau minimum de message syslog ou stderr (défaut=important).

### socket-timeout = (time)

Le temps d'attente en secondes des données sur un socket avant abandon par WWWOFFLE (défaut=120).

### dns-timeout = (time)

Le temps d'attente en secondes d'une requête DNS (Domain Name Service) avant abandon par WWWOFFLE (défaut=60).

### connect-timeout = (time)

Le temps d'attente en secondes pour obtenir un socket avant abandon par WWWOFFLE (défaut=30).

### connect-retry = yes | no

Si une connexion à un serveur distant ne peut être obtenue, alors WWWOFFLE essaiera encore après un court délai (défaut=no).

### ssl-allow-port = (integer)

Un numéro de port autorisé pour les connexions SSL (Secure Socket Layer), par ex. https. Cette option devrait être fixée à 443 pour autoriser https, il peut y avoir plusieurs lignes ssl pour autoriser d'autres ports si besoin.

### dir-perm = (octal int)

Les permissions de répertoires pour la création des répertoires de spool (défaut=0755). Cette option écrase le umask de l'utilisateur, et doit être octale, commençant par un zéro '0'.

### file-perm = (octal int)

Les permissions de fichiers pour la création des fichiers de spool (défaut=0644). Cette option écrase le umask de l'utilisateur, et doit être octale, commençant par un zéro '0'.

### run-online = (filename)

Le nom d'un programme à lancer quand WWWOFFLE est commuté en mode en ligne (défaut=aucun). Ce programme est lancé avec un seul paramètre, fixé au nom du mode, "online".

### run-offline = (filename)

Le nom du programme à lancer quand WWWOFFLE est commuté en mode hors-ligne (défaut=aucun). Ce programme est lancé avec un seul paramètre, le nom du mode, "offline".

### run-autodial = (filename)

Le nom d'un programme à lancer quand WWWOFFLE est commuté en mode automatique (défaut=aucun). Le programme est lancé avec un seul paramètre, le nom du mode, "autodial".

### run-fetch = (filename)

Le nom du programme à lancer quand WWWOFFLE démarre ou arrête le rapatriement automatique (défaut=aucun). Ce programme est lancé avec deux paramètres, le premier le mot "fetch", et le second l'un des mots "start" ou "stop".

### lock-files = yes | no

Active l'usage des fichiers verrous pour empêcher plus d'un processus WWWOFFLE de rapatrier simultanément la même URL (défaut=no).

### reply-compressed-data = yes | no

Si les réponses faites au navigateur doivent contenir des données compressées quand demandé (défaut=no). Nécessite l'option de compilation zlib.

## OnlineOptions

Options contrôlant le comportement en ligne de WWWOFFLE.

### [<URL-SPEC>] request-changed = (time)

En ligne, les pages ne seront rapatriées que si la version mémorisée est plus ancienne que le temps indiqué en secondes (défaut=600). Une valeur négative indique que les pages mémorisées sont toujours utilisées en ligne. Des temps longs peuvent être indiqués par les suffixes 'm', 'h', 'd' ou 'w' pour minute, heure, jour ou semaine (par ex. 10m=600).

### [<URL-SPEC>] request-changed-once = yes | no

En ligne, les pages ne seront rapatriées qu'une seule fois par session (défaut=yes). Cette option a priorité sur l'option request-changed.

### [<URL-SPEC>] request-expired = yes | no

En ligne, les pages périmées seront rafraîchies (défaut=no). Cette option a priorité sur les options request-changed et request-changed-once.

### [<URL-SPEC>] request-no-cache = yes | no

En ligne, les pages à ne pas cacher seront toujours redemandées (défaut=no). Cette option a priorité sur les options request-changed et request-changed-once.

### [<URL-SPEC>] try-without-password = yes | no

Si une requête demande une page utilisant un nom et un mot de passe, alors une requête de la même page sera faite sans (défaut=yes). Ceci autorise la requête d'une page sans mot de passe à être redirigée vers la version avec.

### [<URL-SPEC>] intr-download-keep = yes | no

Si le navigateur ferme la connexion en ligne, alors la page incomplète sera conservée (défaut=no).

### [<URL-SPEC>] intr-download-size = (integer)

Si le navigateur ferme la connexion en ligne, la page devrait continuer à être rapatriée si sa taille est inférieure à celle indiquée en kilo-octets (défaut=1).

### [<URL-SPEC>] intr-download-percent = (integer)

Si le navigateur ferme la connexion en ligne, la page devrait continuer à être rapatriée si le pourcentage indiqué est atteint (défaut=80).

### [<URL-SPEC>] timeout-download-keep = yes | no

Si la connexion au serveur est abandonnée, la page incomplète doit être conservée (défaut=no).

### [<URL-SPEC>] request-compressed-data = yes | no

Si les requêtes aux serveurs doivent demander des données compressées (défaut=yes). Nécessite l'option de compilation zlib.

## OfflineOptions

Options contrôlant le comportement hors ligne de WWWOFFLE.

### [<URL-SPEC>] pragma-no-cache = yes | no

Indique s'il faut rafraîchir une copie si la requête du navigateur a l'option 'Pragma: no-cache' (défaut=yes). Cette option doit être à 'no' si hors ligne toutes les pages sont redemandées par un navigateur défectueux.

### [<URL-SPEC>] confirm-requests = yes | no

Indique s'il faut renvoyer une page de confirmation au lieu d'enregistrer automatiquement les demandes faites hors ligne (défaut=no).

### [<URL-SPEC>] dont-request = yes | no

Ne pas demander hors ligne une URL de ce modèle (défaut=no).

## FetchOptions

Options contrôlant le rapatriement de pages demandées hors ligne.

### [<URL-SPEC>] stylesheets = yes | no

Rapatriement des feuilles de style (défaut=no).

### [<URL-SPEC>] images = yes | no

Rapatriement des images (défaut=no).

### [<URL-SPEC>] webbug-images = yes | no

Rapatriement des imagettes d'un seul pixel, nécessite que l'option image soit aussi activée (défaut=yes). Cette option est conçue pour être utilisée avec l'option replace-webbug-images de la section ModifyHTML.

### [<URL-SPEC>] frames = yes | no

Rapatriement des cadres (défaut=no).

### [<URL-SPEC>] scripts = yes | no

Rapatriement des scripts (par ex. Javascript) (défaut=no).

### [<URL-SPEC>] objects = yes | no

Rapatriement des objets (par ex. fichier de classe Java) (défaut=no).

## IndexOptions

Options contrôlant l'affichage des index.

### no-lasttime-index = yes | no

Supprime la création des index des sessions précédentes (défaut=no).

### cycle-indexes-daily = yes | no

Rotation quotidienne des index des sessions et demandes précédentes au lieu de pour chaque connexion (défaut=no).

### <URL-SPEC> list-outgoing = yes | no

Indique s'il faut afficher ce type d'URL dans les demandes (défaut=yes).

### <URL-SPEC> list-latest = yes | no

Indique s'il faut afficher ce type d'URL dans les sessions et demandes précédentes (défaut=yes).

### <URL-SPEC> list-monitor = yes | no

Indique s'il faut afficher ce type d'URL dans la liste des pages à surveiller périodiquement (défaut=yes).

### <URL-SPEC> list-host = yes | no

Indique s'il faut afficher ce type d'URL dans les listes par site (défaut=yes).

### <URL-SPEC> list-any = yes | no

Indique s'il faut afficher ce type d'URL dans toutes les listes (défaut=yes).

## ModifyHTML

Options contrôlant la modification du HTML mémorisé.

### [<URL-SPEC>] enable-modify-html = yes | no

Active la modification du HTML dans cette section (défaut=no). Sans cette option, les suivantes resteront sans effet. Avec cette option, il y aura un petit ralentissement.

### [<URL-SPEC>] add-cache-info = yes | no

À la fin des pages mémorisées apparaîtra la date et quelques liens (défaut=no).

### [<URL-SPEC>] anchor-cached-begin = (HTML code) |

Ce code HTML sera inséré avant les liens des pages mémorisées (défaut="").

### [<URL-SPEC>] anchor-cached-end = (HTML code) |

Ce code HTML sera inséré après les liens des pages mémorisées (défaut="").

### [<URL-SPEC>] anchor-requested-begin = (HTML code) |

Ce code HTML sera inséré avant les liens vers des pages demandées (défaut="").

### [<URL-SPEC>] anchor-requested-end = (HTML code) |

Ce code HTML sera inséré après les liens vers des pages demandées (défaut="").

### [<URL-SPEC>] anchor-not-cached-begin = (HTML code) |

Ce code HTML sera inséré avant les liens vers des pages ni présentes ni demandées (défaut="").

### [<URL-SPEC>] anchor-not-cached-end = (HTML code) |

Ce code HTML sera inséré après les liens vers des pages ni présentes ni demandées (défaut="").

### [<URL-SPEC>] disable-script = yes | no

Supprime tous les scripts et événements (défaut=no).

### [<URL-SPEC>] disable-applet = yes | no

Supprime toutes les applets Java (défaut=no).

### [<URL-SPEC>] disable-style = yes | no

Supprime toutes les feuilles de style et leurs références (défaut=no).

### [<URL-SPEC>] disable-blink = yes | no

Supprime les balises de clignotement (défaut=no).

### [<URL-SPEC>] disable-flash = yes | no

Supprime les animations Shockwave Flash (défaut=no).

### [<URL-SPEC>] disable-meta-refresh = yes | no

Supprime les balises d'en-tête HTML qui redirigent le navigateur vers une autre page après un délai (défaut=no).

### [<URL-SPEC>] disable-meta-refresh-self = yes | no

Supprime les balises d'en-tête HTML qui indiquent au navigateur de recharger la même page après un délai (défaut=no).

### [<URL-SPEC>] disable-dontget-links = yes | no

Supprime les liens vers une URL de la section DontGet (défaut=no).

### [<URL-SPEC>] disable-dontget-iframes = yes | no

Supprime les liens des URL de cadres de la section DontGet (défaut=no).

### [<URL-SPEC>] replace-dontget-images = yes | no

Remplace les URL d'images de la section DontGet par une URL fixe (défaut=no).

### [<URL-SPEC>] replacement-dontget-image = (URL)

L'image de remplacement à utiliser pour les URL de la section DontGet (défaut=/local/dontget/replacement.gif).

### [<URL-SPEC>] replace-webbug-images = yes | no

Remplace les URL d'imagettes d'un pixel par une URL fixe (défaut=no). Cette option est conçue pour être utilisée avec l'option webbug-images de la section FetchOptions.

### [<URL-SPEC>] replacement-webbug-image = (URL)

L'image de remplacement des imagettes d'un pixel (défaut=/local/dontget/replacement.gif).

### [<URL-SPEC>] disable-animated-gif = yes | no

Supprime l'animation des images GIF animées (défaut=no).

### [<URL-SPEC>] demoronise-ms-chars = yes | no

Remplace quelques caractères étranges insérés par quelques applications Microsoft par des caractères que la majorité des navigateurs peut afficher (défaut=no). Cette idée provient du script Perl Demoroniser, du domaine public.

## LocalHost

Une liste de noms sous lequel l'hôte du serveur WWWOFFLE peut être connu. Ceci permet d'éviter que ce dernier ne se contacte lui-même sous un autre nom.

### (host)

Un nom ou une adresse IP qui avec le numéro de port (cf. section StartUp) indique le serveur proxy WWWOFFLE. Les noms doivent correspondre exactement, ce n'est pas un patron modèle. Le premier nommé est utilisé comme nom du serveur pour plusieurs choses et doit donc être un nom fonctionnel pour tous les clients du réseau. Aucun nom ainsi indiqué n'abrite de page mémorisée ou rapatriée par le proxy.

## LocalNet

Une liste de noms dont les serveurs web sont toujours accessibles même hors ligne, et dont les pages ne sont pas mémorisées par WWWOFFLE car sur le réseau local.

### (host)

Un nom nom ou adresse IP toujours accessible et dont les pages ne sont pas mémorisées par WWWOFFLE. La reconnaissance de ce nom ou adresse utilise un patron modèle. Un hôte peut être exclu en le préfixant par un point d'exclamation '!', tous les alias et adresses IP possibles sont aussi requis. Toutes ces entrées sont supposées toujours accessibles même hors ligne. Aucun des hôtes ainsi mentionnés n'a de page mémorisée.

## AllowedConnectHosts

Une liste de clients autorisés à se connecter au serveur.

### (host)

Un nom d'hôte ou une adresse IP autorisé à se connecter au serveur. La reconnaissance de ce nom ou adresse utilise un patron modèle. Un hôte peut être exclu en le préfixant par un point d'interrogation '!', tous les alias et adresses IP sont aussi requis. Tous les hôtes de la section LocalHost sont aussi autorisés.

## AllowedConnectUsers

Une liste des utilisateurs autorisés à se connecter et leurs mots de passe.

### (username):(password)

Le nom (login) et le mot de passe des utilisateurs autorisés à se connecter au serveur. Si cette section est laissée vide, il n'y a pas d'authentification. Le nom et le mot de passe sont inscrits en clair. Ceci requiert l'utilisation de navigateurs respectant le standard d'authentification HTTP/1.1

## DontCache

Une liste d'URL non mémorisées par WWWOFFLE.

### [!]URL-SPECIFICATION

Ne mémorise aucune URL correspondant à ce modèle. L'URL-SPECIFICATION peut être exclue pour autoriser la mémorisation. Les URL ne seront pas enregistrées hors ligne.

## DontGet

Une liste d'URL qui ne seront pas rapatriées par WWWOFFLE (parce qu'elles ne contiennent que des publicités, par exemple).

### [!]URL-SPECIFICATION

Ne pas rapatrier une URL conforme à ce modèle. L'exclusion permet le rapatriement.

### [<URL-SPEC>] replacement = (URL)

L'URL de remplacement des URL conformes à URL-SPEC, à la place du message d'erreur standard (défaut=none). Les URL du répertoire /local/dontget/ sont suggérées pour cet office (par ex. replacement.gif, replacement.png qui sont des images d'un seul pixel transparent, ou replacement.js qui est un fichier javascript vide).

### <URL-SPEC> get-recursive = yes | no

Indique si les URL de ce modèle doit être rapatriées récursivement (défaut=yes).

### <URL-SPEC> location-error = yes | no

Quand une réponse d'URL contient un en-tête 'Location' qui redirige vers une URL à ne pas rapatrier (indiquée dans cette section), alors la réponse est modifiée en message d'erreur (défaut=no). Ceci empêchera un proxy de fournisseur d'accès de rediriger les utilisateurs vers des publicités si elles sont mentionnées dans cette section.

## DontCompress

Une liste de types MIME et d'extensions de nom de fichiers à ne pas compresser par WWWOFFLE (parce qu'elles sont déjà compressées, ou n'en valent pas la peine). Requiert l'option de compilation zlib.

### mime-type = (mime-type)/(subtype)

Le type MIME d'une URL à ne pas comprimer dans le cache ou en servant des pages compressées aux navigateurs.

### file-ext = .(file-ext)

Une extension de fichier à ne pas demander compressé à un serveur.

## CensorHeader

Une liste d'en-têtes HTTP à enlever des requêtes aux serveurs web et les réponses qui en reviennent.

### [<URL-SPEC>] (header) = yes | no | (string)

Un nom d'en-tête (par ex. From, Cookie, Set-Cookie, User-Agent) et la chaîne de remplacement (défaut=no). L'en-tête est sensible à la casse, et ne doit pas se terminer par un deux-points ':'. La valeur "no" signifie que cet en-tête n'est pas modifié, "yes" ou pas de chaîne peut être utilisé pour supprimer cet en-tête, et une chaîne remplace la valeur de cet en-tête. Seuls les en-têtes trouvés sont remplacés, aucun nouvel en-tête n'est ajouté.

### [<URL-SPEC>] referer-self = yes | no

Met l'en-tête Referer à la même valeur que l'URL demandée (défaut=no).

### [<URL-SPEC>] referer-self-dir = yes | no

Met l'en-tête Referer au nom du répertoire de l'URL demandée (défaut=no). Cette option est prioritaire sur l'option referer-self.

## FTPOptions

Options utilisées pour le protocole FTP.

### anon-username = (string)

Le nom d'utilisateur FTP anonyme utilisé (défaut=anonymous).

### anon-password = (string)

Le mot de passe à utiliser pour le FTP anonyme (défaut déterminé à l'exécution). Si on utilise un coupe-feu, la valeur peut être invalide pour le serveur FTP, et doit être remplacée.

### <URL-SPEC> auth-username = (string)

Le nom d'utilisateur sur ces serveurs au lieu de l'anonyme par défaut.

### <URL-SPEC> auth-password = (string)

Le mot de passe à utiliser au lieu de celui par défaut.

## MIMETypes

Types MIME à utiliser en servant des fichiers qui ne sont pas rapatriés sous le protocole HTTP, ou pour les fichiers du serveur web incorporé.

### default = (mime-type)/(subtype)

Type MIME par défaut (défaut=text/plain).

### .(file-ext) = (mime-type)/(subtype)

Type MIME associé à une extension. Le point '.' initial doit être présent. Si plus d'une extension convient, la plus longue est choisie.

## Proxy

Les noms des serveurs proxys externes à utiliser.

### [<URL-SPEC>] proxy = (host[:port])

Le nom d'hôte et le port du proxy.

### <URL-SPEC> auth-username = (string)

Le nom d'utilisateur à utiliser. La spécification URL-SPEC correspond ici au serveur proxy, et non à l'URL demandée.

### <URL-SPEC> auth-password = (string)

Le mot de passe à utiliser. La spécification URL-SPEC correspond ici au serveur proxy, et non à l'URL demandée.

### [<URL-SPEC>] ssl = (host[:port])

Un serveur proxy utilisé pour les connexions SSL (Secure Socket Layer), par ex. https. Noter que seule la partie hôte de URL-SPEC est vérifiée, et le reste doit être remplacé par des jokers '*'.

## Alias

Une liste d'alias de remplacement de serveurs et chemins. Aussi pour les serveurs connus sous deux noms.

### URL-SPECIFICATION = URL-SPECIFICATION

Toute requête correspondant à la première URL-SPECIFICATION sera remplacée par la seconde. La correspondance doit être exacte, il n'y a pas de patron, les arguments de l'URL sont ignorés.

## Purge

La méthode pour déterminer les pages à purger, l'âge par défaut, l'âge spécifique à l'hôte des pages en jours, et la taille maximum du cache.

### use-mtime = yes | no

La méthode utilisée pour décider des fichiers à purger, dernier accès (atime) ou dernière modification (ctime) (défaut=no).

### max-size = (size)

La taille maximale du cache en méga-octets après la purge (défaut=0). Une valeur nulle signifie pas de limite. Si cette option et min-free sont toutes deux utilisées, la plus petite taille de cache est choisie. Cette option tient compte des URL jamais purgées pour mesurer la taille du cache, mais ne les supprime pas.

### min-free = (size)

La taille minimale d'espace libre en méga-octets après la purge (défaut=0). Une taille nulle signifie aucune limite pour l'espace libre. Si cette option et l'option max-size sont toutes deux utilisées, la plus petite taille de cache est choisie. Cette option tient compte des URL jamais purgées pour le décompte, mais ne les supprime pas.

### use-url = yes | no

Si 'yes' alors utilise l'URL pour décider de l'âge, sinon utilise seulement le protocole et l'hôte (défaut=no).

### del-dontget = yes | no

Si 'yes' alors supprime les pages correspondant à la section DontGet (défaut=no).

### del-dontcache = yes | no

Si 'yes' alors supprime les pages correspondant à la section DontCache (défaut=no).

### [<URL-SPEC>] age = (age)

L'âge maximum en jours dans le cache pour les URL correspondant à URL-SPEC (défaut=14). Un âge nul signifie ne pas garder, et négatif ne pas effacer. URL-SPECIFICATION correspond seulement au protocole et à l'hôte, sauf si l'option use-url est activée. Des temps plus longs peuvent être indiqués par les suffixes 'w', 'm' ou 'y' pour semaine, mois et année (par ex. 2w=14).

### [<URL-SPEC>] compress-age = (age)

L'âge maximum de stockage sans compression dans le cache pour les URL correspondant à URL-SPEC (défaut=-1). Requiert l'option de compilation zlib. L'âge a la même signification que pour l'option age.

## WILDCARD

Une correspondance joker utilise le caractère '*' pour représenter un groupe quelconque de caractères.

Ceci est fondamentalement identique aux expressions en ligne de commande des shells DOS ou UNIX, excepté le fait que '*' correspond aussi au caractère '/'.

Par exemple,

*.gif
  correspond à foo.gif et bar.gif

*.foo.com
  correspond à www.foo.com et ftp.foo.com

/foo/*
  correspond à /foo/bar.html et /foo/bar/foobar.html

## URL-SPECIFICATION

En indiquant un hôte, un protocole et un chemin dans de nombreuses sections, une URL-SPECIFICATION peut être utilisée, c'est un moyen de reconnaître une URL.

Pour cette explication, une URL peut être composée de cinq parties.

proto
  Le protocole utilisé (par ex. 'http', 'ftp')

host
  Le nom du serveur (par ex. 'www.gedanken.demon.co.uk').

port
  Le numéro de port sur le serveur (par ex. 80 pour le HTTP).

path
  Le chemin sur le serveur (par ex. '/bar.html') ou un nom de répertoire (par ex. '/foo/').

args
  Arguments de l'URL pour les scripts CGI, etc. (par ex. 'search=foo').

Par exemple, prenons la page d'accueil de WWWOFFLE, http://www.gedanken.demon.co.uk/wwwoffle/

Le protocole est 'http', l'hôte 'www.gedanken.demon.co.uk', le port est celui par défaut (ici, 80), et le chemin est '/wwwoffle/'.

En général, on écrira (proto)://(host)[:(port)][/(path)[?(args)]]

où les crochets [] indiquent une partie optionnelle, et les parenthèses () un nom ou un numéro fourni par l'utilisateur.

Ci dessous quelques exemples de URL-SPECIFICATION :

*://*/*
  Tout protocole, tout hôte, tout port, tout chemin, tous arguments (ce qui revient à 'default').

*://*/(path)
  Tout protocole, tout hôte, tout port, chemin précisé, tous arguments.

*://*/*.(ext)
  Tout protocole, tout hôte, tout port, extension précisée, tous arguments.

*://*/*?
  Tout protocole, tout hôte, tout port, tout chemin, pas d'arguments.

*://*/(path)?*
  Tout protocole, tout hôte, tout port, chemin précisé, tous arguments.

*://(host)/*
  Tout protocole, hôte précisé, tout port, tout chemin, tous arguments.

(proto)://*/*
  Protocole précisé, tout hôte, tout port, tout chemin, tous arguments.

(proto)://(host)/* Protocole et hôte précisés, tout port, tout chemin, tous arguments.

(proto)://(host):/* Protocole et hôte précisés, port par défaut, tout chemin, tous arguments.

*://(host):(port)/* Tout protocole, hôte et port précisés, tout chemin, tous arguments.

La correspondance des hôtes, chemins et arguments utilise les jokers décrits ci-dessus.

Dans quelques sections acceptant les URL-SPECIFICATION, celles-ci peuvent être exclues en les préfixant d'un point d'exclamation '!'. Cela signifie que la comparaison renverra la valeur logique contraire à celle renvoyée sans le '!'. Si toutes les URL-SPECIFICATION sont exclues, et qu'on rajoute '*://*/*' à la fin, le sens de la section est renversé.