Nous utilisons un serveur Web qui n'autorise pas la liste des répertoires.
Il y a un répertoire spécifique dont j'aimerais autoriser la liste.
Comment créer un simple fichier HTML qui contiendra le contenu de ce répertoire?
Vous pouvez soit: écrire une page de script côté serveur comme PHP, JSP, ASP.net, etc. pour générer dynamiquement ce HTML
ou
Configurez le serveur Web que vous utilisez (par exemple Apache) pour faire exactement cela automatiquement pour les répertoires qui ne contiennent pas de page d'accueil (par exemple index.html)
Spécifiquement dans Apache, lisez plus ici: Modifiez le httpd.conf: http://justlinux.com/forum/showthread.php?s=&postid=502789#post502789
ou ajoutez le mod autoindex: http://httpd.Apache.org/docs/current/mod/mod_autoindex.html
Il existe suffisamment de raisons valables pour désactiver explicitement les index d'annuaire automatiques dans Apache ou d'autres serveurs Web. Ou, par exemple, vous souhaiterez peut-être inclure uniquement certains types de fichiers dans l'index. Dans de tels cas, vous pouvez toujours vouloir avoir un fichier index.html généré statiquement pour des dossiers spécifiques.
Ceci peut être facilement réalisé avec arbre - un utilitaire minimaliste disponible sur la plupart des distributions Linux (par exemple ubuntu/debian: Sudo apt install tree
) et qui peut générer du texte brut, XML, JSON ou HTML.
Générez un index de répertoire HTML d'un niveau:
tree -H '.' -L 1 --noreport --charset utf-8 > index.html
N'incluez que des types de fichiers spécifiques qui correspondent à un modèle global, par exemple *.Zip
des dossiers:
tree -H '.' -L 1 --noreport --charset utf-8 -P "*.Zip" > index.html
L'argument de
-H
est ce qui sera utilisé comme href de base, vous pouvez donc passer soit par un chemin relatif tel que.
ou un chemin absolu à partir de la racine Web, tel que/files
.-L 1
limite la liste au répertoire actuel uniquement.
Je voulais un générateur d'index que je pourrais styler comme je le souhaitais, donc j'ai fini par utiliser ce script - en plus d'avoir un style personnalisable, le script génèrera également récursivement le index.html
fichier dans tous les sous-répertoires imbriqués.
Pour moi PHP est le moyen le plus simple de le faire:
<?php
echo "Here are our files";
$path = ".";
$dh = opendir($path);
$i=1;
while (($file = readdir($dh)) !== false) {
if($file != "." && $file != ".." && $file != "index.php" && $file != ".htaccess" && $file != "error_log" && $file != "cgi-bin") {
echo "<a href='$path/$file'>$file</a><br /><br />";
$i++;
}
}
closedir($dh);
?>
Placez-le dans votre répertoire et définissez où vous souhaitez qu'il recherche dans le chemin $. La première instruction if masquera votre fichier php et .htaccess et le journal des erreurs. Il affichera ensuite la sortie avec un lien. Il s'agit d'un code très simple et facile à modifier.
Avez-vous essayé de l'autoriser pour ce répertoire via .htaccess?
Options +Indexes
Je l'utilise pour certains de mes répertoires où la liste des répertoires est désactivée par mon fournisseur
Cela ne peut pas être fait avec du HTML pur.
Cependant, si vous avez accès à PHP sur le serveur Apache (vous avez marqué le post "Apache"), cela peut être fait facilement - voir le PHP = fonction glob Sinon - vous pourriez essayer Server Side Include - c'est une chose Apache, et je n'en sais pas grand-chose.