Le serveur Apache et son module d'index automatique

HTTP - module php et configuration du serveur httpd.conf

Quand un fichier .html contient du code php, celui-ci n'est pas exécuté par l'interpréteur php du serveur, même si on le "regarde" avec le protocole http.

Le code php contenu dans un fichier n'est exécuté que si l'extension du fichier est .php et si le serveur de page Web est configuré de façon à appeler le module php pour les fichiers dont l'extension est .php.

Parmi les autres paramétrages du serveur (c-à-d dans httpd.conf), il y a par exemple :

FICHIER README

Le commentaire suivant est le texte contenu dans le fichier README.txt.

L'index automatique est généré par le serveur
si le module autoindex d'Apache est activé (ce qui est nécessairement le cas dès que vous voyez ce contenu).

Ainsi, le serveur de pages Web Apache peut générer automatiquement un index pour chaque dossier qui ne contient pas déjà un fichier dont le nom est dans la liste des noms de fichiers "par défaut" (quand l'url demande un dossier, sans préciser explicitement de fichier).

Le commentaire ici-présent est le texte contenu dans le fichier README.txt.
Ce nom de fichier de description peut être précisé pour chaque dossier, dans un fichier .htaccess, avec la directive ReadmeName. Exemple :

ReadmeName README.txt

Le fichier de configuration du serveur lui-même
peut définir globalement un fichier de description par défaut.

De même, on peut désigner un fichier à utiliser pour un texte à insérer au dessus de l'index automatique, en ajoutant dans .htaccess :

HeaderName HEADER.txt

On peut aussi nommer des noms de fichiers à ne pas inclure
dans l'index automatique, avec la directive IndexIgnore.
Par défaut, la liste ne contient que '.' :

IndexIgnore README .htaccess *~

On peut aussi agir sur la présentation

(voir dans le dossier ../essais/ tous les essais qui ont été faits ici)

FICHIER .htaccess

Tout dossier qui contient contient un fichier caché nommé .htaccess permet de modifier localement la conifguration du serveur Apache, où localement signifie que tous les fichiers et dossier contenus dans le dossier considéré hériteront de ce paramétrage en ce qui concerne l'accès servi de ce contenu

Sa première ligne fixe l'encodage : le serveur devra renvoyer cette information dans son entête pour que les clients considèrent que tous les fichiers html qu'ils recoivent en réception à leur demande d'une page "sous" le dossier contenu ce fichier .htaccess, sont encodés dans l'encodage défini ici. Cette ligne est, dans notre fichier :

AddDefaultCharset utf-8

Les lignes suivantes définissent les fichiers qui devront être renvoyé en cas d'erreur.

ErrorDocument 403 /essais-free/autoindex-apache/autoindex/http/erreurs/error_403.html

: exemple d'un fichier d'erreur en html

ErrorDocument 400 /essais-free/autoindex-apache/autoindex/http/erreurs/error.php?err=400
ErrorDocument 401 /essais-free/autoindex-apache/autoindex/http/erreurs/error.php?err=401
ErrorDocument 404 /essais-free/autoindex-apache/autoindex/http/erreurs/error.php
ErrorDocument 500 /essais-free/autoindex-apache/autoindex/http/erreurs/error.php?err=500

: exemple d'un fichier d'erreur en php, ce qui permet d'avoir un seul fichier pour toutes les erreurs

On remarque que ici, pour l'erreur 404, le code de l'erreur n'est pas spécifiée, on peut la récupérer dans les variables d'environnement du serveur (qu'on peut manipuler en php).
Il est donc en fait inutile d'utiliser une "transmission" de paramètres explicite comme c'est fait ici pour les autres cas.

Dans ce dossier, le fichier .htaccess test plusieurs directives combinées :

AddDefaultCharset utf-8
ReadmeName monREADME.txt
HeaderName HEADER.txt
#IndexIgnore README .htaccess *~
IndexIgnore monREADME.txt HEADER.txt
#IndexOptions ScanHTMLTitles FancyIndexing FoldersFirst ShowForbidden
IndexOptions ScanHTMLTitles FancyIndexing FoldersFirst 
#IndexOptions NameWidth=50 XHTML SuppressRules HTMLTable DescriptionWidth=*
IndexOptions NameWidth=50 DescriptionWidth=*
#Options FollowSymLinks
#AllowOverride All
#Options Indexes FollowSymLinks MultiViews
#IndexStyleSheet "style.css"
AddDescription "feuille de style qu'on aura voulu utiliser pour cet index " style.css
#DirectoryIndex index.html index.php

Les lignes commençant par # sont en commentaire : ces directives sont refusées sur free

PROTECTION DOSSIER

L'accès à ce dossier est protégé par mot de passe.
Les seuls autorisés sont les utilisateurs nommer.

Le contenu du fichier .htaccess de ce dossier est :

PerlSetVar AuthFile /essais-free/autoindex-apache/autoindex/http/interdit/_.htpasswd_free
#chemin du dossier contenant Login et Mdp
AuthName "Acces restreint dans cette zone : montrez votre patte blanche..."
AuthType Basic
<limit GET POST>
  require user Utilisateur(séparateur espace)
  #require valid-user
</limit>

Le contenu du fichier .htaccess contenu dans le dossier où est aussi le fichier de mots de passe est

deny from all

Le fichier de mots de passe associe des identifiants à des mots de passe dans une liste avec
un identifiant par ligne sous la forme :

identifiant:motdepasse

Chez free, les mots de passe sont "en clair", mais sur la pluspart des hébergeurs, ils sont cryptés.

Conseil : éviter les caractères accentués