Filtres

Apache 2 a introduit un nouveau mécanisme appelé « filtre » ainsi qu’une refonte des vues multiples. La documentation indique :

Un filtre est un processus qui s’applique aux données envoyées ou reçues par le serveur. Les données envoyées par les clients au serveur sont traitées par des filtres d’entrée, tandis que les données envoyées par le serveur aux clients sont traitées par des filtres de sortie. On peut appliquer plusieurs filtres aux données et leur ordre d’application peut être indiqué explicitement.

Les filtres sont utilisés en interne par Apache pour effectuer des opérations comme le découpage et la gestion des requêtes d’intervales d’octets ( byte-range ). De plus, des modules peuvent fournir des filtres que l’on peut sélectionner à l’exécution grâce à des directives de configuration. L’ensemble des filtres s’appliquant à des données peut être manipulé par les directives SetInputFilter et SetOutputFilter.

Actuellement, le seul filtre configurable inclus dans la distribution Apache est INCLUDES, qui est fourni par le module mod-include afin de traiter les sorties pour SSI (Server Side Includes). Il existe également un module expérimental nommé mod_ext_filter, qui permet d’utiliser des programmes externes comme filtres.

Il y a un exemple de filtre qui met le texte en majuscules. Le répertoire .site.filter/htdocs contient deux fichiers, 1.txt et 1.html, qui contiennent le même texte :

BIEN LE BONJOUR DE site.filter

Le fichier de configuration est le suivant :

User webuser

Group webgroup

 

Listen 80

ServerName my586

 

AddOutputFilter CaseFilter html

DocumentRoot /usr/www/APACHE3/site.filter/htdocs

Lorsque l’on accède à ce site, on se trouve dans un répertoire. Si nous choisissons 1.txt, le texte précédent apparaît ; si l’on choisit 1.html, on constate qu’il est passé par le filtre et que tout son contenu est maintenant en majuscules :

BIEN LE BONJOUR DE SITE.FILTER

Les directives concernées sont les suivantes :

AddInputFilter

AddInputFilter filtre[;filtre...] extension [extension ...]

Répertoire, fichiers, conteneur Location, .htaccess

Cette directive n’est disponible qu’à partir d’Apache 2.0.26.

AddInputFilter associe les extensions de fichier indiquées aux filtres qui traitent les requêtes de clients et les entrées POST reçues par le serveur. Ce traitement s’ajoute à celui des autres filtres définis ailleurs, par la directive SetInputFilter notamment. Cette association se combine à celles déjà en place et surcharge celles qui existent déjà pour la même extension.

Si plusieurs filtres sont spécifiés, ils doivent être séparés par des points-virgules et placés dans l’ordre où ils doivent s’appliquer. Les paramètres de cette directive sont insensibles à la casse et les extensions peuvent, ou non, être préfixées d’un point.

AddOutputFilter

AddOutputFilter filtre[;filtre...] extension [extension ...]

Répertoire, fichiers, conteneur Location, .htaccess

Cette directive n’est disponible qu’à partir d’Apache 2.0.26.

La directive AddOutputFilter associe les extensions indiquées aux filtres qui traitent les réponses du serveur avant qu’elles soient envoyées au client. Ces filtres s’ajoutent à ceux qui ont déjà été définis, par la directive SetOutputFilter notamment. Cette association se combine à celles déjà en place et surcharge celles qui existent déjà pour la même extension. La configuration suivante, par exemple, entraîne le traitement des Server-Side Includes de tous les fichiers .shtml.

AddOutputFilter INCLUDES shtml

Si plusieurs filtres sont précisés, ils doivent être séparés par des points-virgules et placés dans l’ordre où ils doivent s’appliquer. Les paramètres de cette directive sont insensibles à la casse et les extensions peuvent, ou non, être préfixées d’un point.

SetInputFilter

SetInputFilter filtre[;filtre...]

Configuration du serveur, hôte virtuel, répertoire, .htaccess

La directive SetInputFilter configure les filtres qui traitent les requêtes des clients et les entrées POST reçues par le serveur. Ce traitement s’ajoute à celui des autres filtres définis ailleurs, notamment par la directive AddInputFilter.

Si plusieurs filtres sont précisés, ils doivent être séparés par des points-virgules et placés dans l’ordre où ils doivent s’appliquer.

SetOutputFilter

SetOutputFilter filtre [filtre] ...

Configuration du serveur, hôte virtuel, répertoire, .htaccess

La directive SetOutputFilter configure les filtres qui traitent les réponses du serveur avant qu’elles ne soient envoyées au client. Ce traitement s’ajoute à celui des autres filtres définis ailleurs, notamment par la directive AddOutputFilter.

La configuration suivante, par exemple, traite tous les fichiers du répertoire /www/data/ pour Server-Side Includes.

<Directory /www/data/>

SetOutputFilter INCLUDES

</Directory>

Si plusieurs filtres sont précisés, ils doivent être séparés par des points-virgules et placés dans l’ordre où ils doivent s’appliquer.

RemoveInputFilter

RemoveInputFilter extension [extension] ...

Répertoire, .htaccess

Cette directive n’est disponible qu’à partir d’Apache 2.0.26.

La directive RemoveInputFilter supprime toutes les associations de filtres d’entrée aux fichiers portant les extensions indiquées. Cela permet aux fichiers .htaccess des sous-répertoires d’annuler les associations héritées de répertoires parents ou de la configuration du serveur.

Les extensions passées en paramètres sont insensibles à la casse et peuvent, ou non, être préfixées d’un point.

RemoveOutputFilter

RemoveOutputFilter extension [extension] ...

Répertoire, .htaccess

Cette directive n’est disponible qu’à partir d’Apache 2.0.26.

La directive RemoveOutputFilter supprime toutes les associations de filtres de sortie aux fichiers portant les extensions indiquées. Cela permet aux fichiers .htaccess des sous-répertoires d’annuler les associations héritées de répertoires parents ou de la configuration du serveur.

Les extensions passées en paramètres sont insensibles à la casse et peuvent, ou non, être préfixées d’un point.

Apache La référence
titlepage.xhtml
APACHE-la-REF_split_000.htm
APACHE-la-REF_split_001.htm
APACHE-la-REF_split_002.htm
APACHE-la-REF_split_003.htm
APACHE-la-REF_split_004.htm
APACHE-la-REF_split_005.htm
APACHE-la-REF_split_006.htm
APACHE-la-REF_split_007.htm
APACHE-la-REF_split_008.htm
APACHE-la-REF_split_009.htm
APACHE-la-REF_split_010.htm
APACHE-la-REF_split_011.htm
APACHE-la-REF_split_012.htm
APACHE-la-REF_split_013.htm
APACHE-la-REF_split_014.htm
APACHE-la-REF_split_015.htm
APACHE-la-REF_split_016.htm
APACHE-la-REF_split_017.htm
APACHE-la-REF_split_018.htm
APACHE-la-REF_split_019.htm
APACHE-la-REF_split_020.htm
APACHE-la-REF_split_021.htm
APACHE-la-REF_split_022.htm
APACHE-la-REF_split_023.htm
APACHE-la-REF_split_024.htm
APACHE-la-REF_split_025.htm
APACHE-la-REF_split_026.htm
APACHE-la-REF_split_027.htm
APACHE-la-REF_split_028.htm
APACHE-la-REF_split_029.htm
APACHE-la-REF_split_030.htm
APACHE-la-REF_split_031.htm
APACHE-la-REF_split_032.htm
APACHE-la-REF_split_033.htm
APACHE-la-REF_split_034.htm
APACHE-la-REF_split_035.htm
APACHE-la-REF_split_036.htm
APACHE-la-REF_split_037.htm
APACHE-la-REF_split_038.htm
APACHE-la-REF_split_039.htm
APACHE-la-REF_split_040.htm
APACHE-la-REF_split_041.htm
APACHE-la-REF_split_042.htm
APACHE-la-REF_split_043.htm
APACHE-la-REF_split_044.htm
APACHE-la-REF_split_045.htm
APACHE-la-REF_split_046.htm
APACHE-la-REF_split_047.htm
APACHE-la-REF_split_048.htm
APACHE-la-REF_split_049.htm
APACHE-la-REF_split_050.htm
APACHE-la-REF_split_051.htm
APACHE-la-REF_split_052.htm
APACHE-la-REF_split_053.htm
APACHE-la-REF_split_054.htm
APACHE-la-REF_split_055.htm
APACHE-la-REF_split_056.htm
APACHE-la-REF_split_057.htm
APACHE-la-REF_split_058.htm
APACHE-la-REF_split_059.htm
APACHE-la-REF_split_060.htm
APACHE-la-REF_split_061.htm
APACHE-la-REF_split_062.htm
APACHE-la-REF_split_063.htm
APACHE-la-REF_split_064.htm
APACHE-la-REF_split_065.htm
APACHE-la-REF_split_066.htm
APACHE-la-REF_split_067.htm
APACHE-la-REF_split_068.htm
APACHE-la-REF_split_069.htm
APACHE-la-REF_split_070.htm
APACHE-la-REF_split_071.htm
APACHE-la-REF_split_072.htm
APACHE-la-REF_split_073.htm
APACHE-la-REF_split_074.htm
APACHE-la-REF_split_075.htm
APACHE-la-REF_split_076.htm
APACHE-la-REF_split_077.htm
APACHE-la-REF_split_078.htm
APACHE-la-REF_split_079.htm
APACHE-la-REF_split_080.htm
APACHE-la-REF_split_081.htm
APACHE-la-REF_split_082.htm
APACHE-la-REF_split_083.htm
APACHE-la-REF_split_084.htm
APACHE-la-REF_split_085.htm
APACHE-la-REF_split_086.htm
APACHE-la-REF_split_087.htm
APACHE-la-REF_split_088.htm
APACHE-la-REF_split_089.htm
APACHE-la-REF_split_090.htm
APACHE-la-REF_split_091.htm
APACHE-la-REF_split_092.htm
APACHE-la-REF_split_093.htm
APACHE-la-REF_split_094.htm
APACHE-la-REF_split_095.htm
APACHE-la-REF_split_096.htm
APACHE-la-REF_split_097.htm
APACHE-la-REF_split_098.htm
APACHE-la-REF_split_099.htm
APACHE-la-REF_split_100.htm
APACHE-la-REF_split_101.htm
APACHE-la-REF_split_102.htm
APACHE-la-REF_split_103.htm
APACHE-la-REF_split_104.htm
APACHE-la-REF_split_105.htm
APACHE-la-REF_split_106.htm
APACHE-la-REF_split_107.htm
APACHE-la-REF_split_108.htm
APACHE-la-REF_split_109.htm
APACHE-la-REF_split_110.htm
APACHE-la-REF_split_111.htm
APACHE-la-REF_split_112.htm
APACHE-la-REF_split_113.htm
APACHE-la-REF_split_114.htm
APACHE-la-REF_split_115.htm
APACHE-la-REF_split_116.htm
APACHE-la-REF_split_117.htm
APACHE-la-REF_split_118.htm
APACHE-la-REF_split_119.htm
APACHE-la-REF_split_120.htm
APACHE-la-REF_split_121.htm
APACHE-la-REF_split_122.htm
APACHE-la-REF_split_123.htm
APACHE-la-REF_split_124.htm
APACHE-la-REF_split_125.htm
APACHE-la-REF_split_126.htm
APACHE-la-REF_split_127.htm
APACHE-la-REF_split_128.htm
APACHE-la-REF_split_129.htm
APACHE-la-REF_split_130.htm
APACHE-la-REF_split_131.htm
APACHE-la-REF_split_132.htm
APACHE-la-REF_split_133.htm
APACHE-la-REF_split_134.htm
APACHE-la-REF_split_135.htm
APACHE-la-REF_split_136.htm
APACHE-la-REF_split_137.htm
APACHE-la-REF_split_138.htm
APACHE-la-REF_split_139.htm
APACHE-la-REF_split_140.htm
APACHE-la-REF_split_141.htm
APACHE-la-REF_split_142.htm
APACHE-la-REF_split_143.htm
APACHE-la-REF_split_144.htm
APACHE-la-REF_split_145.htm
APACHE-la-REF_split_146.htm
APACHE-la-REF_split_147.htm
APACHE-la-REF_split_148.htm
APACHE-la-REF_split_149.htm
APACHE-la-REF_split_150.htm
APACHE-la-REF_split_151.htm
APACHE-la-REF_split_152.htm
APACHE-la-REF_split_153.htm
APACHE-la-REF_split_154.htm
APACHE-la-REF_split_155.htm
APACHE-la-REF_split_156.htm
APACHE-la-REF_split_157.htm
APACHE-la-REF_split_158.htm
APACHE-la-REF_split_159.htm
APACHE-la-REF_split_160.htm
APACHE-la-REF_split_161.htm
APACHE-la-REF_split_162.htm
APACHE-la-REF_split_163.htm
APACHE-la-REF_split_164.htm
APACHE-la-REF_split_165.htm
APACHE-la-REF_split_166.htm
APACHE-la-REF_split_167.htm
APACHE-la-REF_split_168.htm
APACHE-la-REF_split_169.htm
APACHE-la-REF_split_170.htm
APACHE-la-REF_split_171.htm
APACHE-la-REF_split_172.htm
APACHE-la-REF_split_173.htm
APACHE-la-REF_split_174.htm