Autoriser l’indexation ?
En général il vaut mieux interdire l’indexation de vos dossiers : pour des raisons de confidentialité, d’élégance, de contrôle sur les informations auxquelles peuvent accéder vos visiteurs. Cependant il peut être utile d’autoriser vos visiteurs à accéder au contenu « brut » de vos dossiers dans certains cas. Par exemple, chez micr0lab, nous proposons parfois nos disques au format mp3
. Pour laisser l’accès à nos visiteurs à ces titres sans pour autant coder d’inutiles pages, nous mettons en place un autoindex (un exemple).
Cependant la disposition par défaut de cette liste de documents est pour le moins peu esthétique, jugez plutôt :
Mais il est possible de personnaliser cette apparence en jouant sur deux tableaux : en configurant votre fichier .htaccess
, et en créant divers fichiers. Attention, ces modifications ne fonctionnent pas en local !
Configurer votre .htaccess
À la racine de votre site, éditez (ou créez) votre fichier .htaccess
comme suit :
#Par defaut, ne pas afficher la liste des fichiers s'il n'y a pas d'index.php ou d'index.html
Options -Indexes
###Personnalisation de l'autoindex##
#Ne pas afficher les fichiers .htaccess
IndexIgnore .htaccess
#A personnaliser en fonction de votre encodage (ici UTF-8)
IndexOptions Charset=UTF-8
<IfModule mod_autoindex.c>
IndexOptions FancyIndexing SuppressHTMLPreamble SuppressLastModified FoldersFirst NameWidth=* +IconsAreLinks SuppressColumnSorting +DescriptionWidth=0 HTMLTable SuppressRules
#Les deux parametres qui suivent sont a personnaliser
ReadmeName /chemin/autoindex/bas.shtml
HeaderName /chemin/autoindex/tete.shtml
</IfModule>
La fonction de ces diverses options listées après IndexOptions
est largement documentée sur le site d’apache.
Puis dans les dossiers où vous voulez afficher un autoindex, placer un fichier .htaccess
contenant simplement
Options +Indexes
Personnaliser son apparence
Ensuite, créez vos deux fichiers /chemin/autoindex/tete.shtml
et /chemin/autoindex/bas.shtml
. Ces deux fichiers ne seront que des renvois vers des fichiers php
qui vous permettront de personnaliser encore plus finement votre autoindex.
<!--#include file="tete.php"-->
<!--#include virtual="bas.php"-->
Il faut ensuite créer ces fichiers /chemin/autoindex/tete.php
et /chemin/autoindex/bas.php
. Puisque nous avons activé l’option SuppressHTMLPreamble
, vos fichiers doivent contenir les en-têtes nécessaires à toute bonne page HTML.
<!DOCTYPE html>
<html lang="fr" xml:lang="fr" dir="ltr">
<head>
<?php
include ("../../mon_entete.php");
// Attention, l'url doit etre relative au dossier /chemin/autoindex
?>
<title>--::micr0lab::-- L’autoindex</title>
<meta name="description" content="L’autoindex !"/>
<!-- Un peu de style ... -->
<style>
table{border-radius:8px; box-shadow:3px 3px 2px 2px #ccccc0; margin : auto;}
table tr td{padding : .3em}
table td{padding : 0 1em}
table th{display : none;}
a[href*=mu0l]:after {content:" : Retour à la page du mu0l.";}
a[href*=mu0l]{font-size : 110%; margin : 3em;}
</style>
</head>
<body>
<?php
include ("../../mon_menu.php");
// Attention, l'url doit etre relative au dossier /chemin/autoindex
?>
<section id="corps">
<h1>L’autoindex de micr0lab</h1>
En-dessous sera affiché votre autoindex, sous forme de tableau puisqu’est activée l’option HTMLTable
dans votre .htaccess
. Puis vient le code contenu dans bas.php
, qui doit se charger de fermer toutes les balises ouvertes.
</section>
<?php
include ("../../mon_footer.php");
// Attention, l'url doit etre relative au dossier /chemin/autoindex
?>
</body>
</html>
Vous pouvez également inclure dans ce fichier un petit script afin que soit automatiquement ajouté dans le titre du lien la taille et le nom du fichier.
La page ainsi créée ne sera pas valide aux yeux du service de validation du W3C, notamment pour cause de balises valign
et align
, mais au moins elle sera plus esthétique !
Quelques références
Contact : webmestre[arobase]micr0lab.org