Vous êtes à : Accueil > Nos techniques > Personaliser l’autoindex

Passer le menu Aller au pied de page

Licences Joueb English version Accessibilité

Personnaliser son autoindex.

Cette page technique cite les sources et astuces de micr0lab concernant l’autoindex (Qu’est-ce ?).

Sommaire : Autoriser l’autoindexation ?L’.htaccess détailléPersonnaliser votre autoindexQuelques liens

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 :

L’affichage par défaut de l’autoindex sur un serveur apache est trop sobre.

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
	// Ou absolue
	?>
		<title>--::micr0lab::-- L’autoindex</title>
		<meta name="description" content="L’autoindex&nbsp;!"/>
	<!-- 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
		// Ou absolue
	?>
		<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
		// Ou absolue
		?>
	</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 :

Contact Plan Lettre F.a.q. C.G.U.