Как я могу создать простой файл index.html, в котором перечислены все файлы / каталоги? - PullRequest
26 голосов
/ 24 сентября 2010

Мы используем веб-сервер, который не позволяет просматривать каталоги.

Существует определенный каталог, в котором я хотел бы разрешить перечисление.

Как создать простой HTML-файл, который будет содержать содержимое этого каталога?

Ответы [ 6 ]

32 голосов
/ 23 сентября 2017

Достаточно веских причин для явного отключения автоматических индексов каталогов в apache или других веб-серверах.Или, например, вы можете включить в индекс только определенные типы файлов.В таких случаях вам может потребоваться статически сгенерированный файл index.html для определенных папок.

Этого легко достичь с помощью tree - минималистичная утилита, доступная в большинстве дистрибутивов Linux (например, Ubuntu / Debian: sudo apt install tree) и которая может генерировать простой текст, XML, JSON или HTML-вывод.

Создание индекса каталога HTML на один уровень глубиной:

tree -H '.' -L 1 --noreport --charset utf-8 > index.html

Включать только определенные типы файлов, которые соответствуют шаблону глобуса, например *.zip files:

tree -H '.' -L 1 --noreport --charset utf-8 -P "*.zip" > index.html

Аргумент к -H - это то, чтобудет использоваться в качестве базового href, поэтому вы можете передать относительный путь, такой как ., или абсолютный путь от корня сети, такой как /files.-L 1 ограничивает перечисление только текущим каталогом.

Мне нужен генератор индекса, который я мог бы стилизовать так, как я хотел, так что в итоге я использовал этот скрипт - в дополнение к настраиваемому стилю скрипт также рекурсивно генерирует файл index.html во всех вложенных подкаталогах.

22 голосов
/ 25 сентября 2010

Для меня PHP - самый простой способ сделать это:

<?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);
?> 

Поместите это в свой каталог и укажите, где вы хотите его искать в $ path.Первый оператор if будет скрывать ваш php-файл и .htaccess и журнал ошибок.Затем он отобразит вывод со ссылкой.Это очень простой код, который легко редактировать.

7 голосов
/ 24 сентября 2010

Вы можете либо: Напишите страницу сценария на стороне сервера, такую ​​как PHP, JSP, ASP.net и т. Д., Чтобы динамически генерировать этот HTML

или

Настройте веб-сервер, который вы используете (например, Apache), чтобы сделать это автоматически для каталогов, не содержащих страницу приветствия (например, index.html)

В частности, в Apache, читайте больше здесь: Отредактируйте httpd.conf: http://justlinux.com/forum/showthread.php?s=&postid=502789#post502789

или добавьте мод autoindex: http://httpd.apache.org/docs/current/mod/mod_autoindex.html

2 голосов
/ 24 сентября 2010

Вы пытались разрешить его для этого каталога через .htaccess?

Options +Indexes

Я использую это для некоторых из моих каталогов, где список поставщиков отключен моим провайдером

1 голос
/ 24 сентября 2010

Это невозможно сделать с чистым HTML.

Однако, если у вас есть доступ к PHP на сервере Apache (вы пометили пост «apache»), это можно сделать легко - se функция глобуса PHP . Если нет - вы можете попробовать включить серверную часть - это Apache, и я мало что знаю об этом.

0 голосов
/ 26 августа 2016

Знать HTML очень важно, так как мы можем создать наш собственный веб-сайт для наших нужд.Вы можете создать простой файл index.html DirectoryIndex index.html DirectoryIndex index.php

Одиночная директива

DirectoryIndex index.html index.php

Ознакомьтесь с простым способом изучения HTML на HTML Beautifier инструмент, который поможет вам украсить или отформатировать нечеткий, неясный HTML-код для его четкого чтения.Также это помогает практиковать больше наборов кодирования в данном пространстве.Если вы сделали ошибку в модификации, она исправит вас в правильном формате.Также это очень полезный инструмент для разработчиков, чтобы найти и исправить ошибки выполнения во вложенном HTML-коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...