Как создать простой файл index.html, в котором перечислены все файлы/каталоги?
Мы используем сервер Apache, который не разрешает каталоги.
Существует конкретный каталог, который я хотел бы разрешить.
Как сделать простой HTML файл, который будет содержать содержимое этого каталога?
Ответы
Ответ 1
Вы можете:
Напишите серверную страницу script, такую как 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
Для меня 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);
?>
Поместите это в свой каталог и укажите, где вы хотите его искать по пути $. Первый оператор if скроет ваш php файл и .htaccess и журнал ошибок. Затем он отобразит вывод со ссылкой. Это очень простой код и легко редактировать.
Ответ 3
Существует достаточно веских причин для явного отключения автоматических индексов каталога в 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
Включать только определенные типы файлов, которые соответствуют шаблону glob, например. *.zip
файлы:
tree -H '.' -L 1 --noreport --charset utf-8 -P "*.zip" > index.html
Аргумент -H
- это то, что будет использоваться в качестве базового href, поэтому вы можете передать либо относительный путь, например .
, либо абсолютный путь от корня веб-сайта, например /files
. -L 1
ограничивает листинг только текущим каталогом.
Мне нужен генератор индексов, который я мог бы создать так, как я хотел, поэтому в итоге использовал этот script - в дополнение к настраиваемый стиль, script также рекурсивно генерирует файл index.html
во всех вложенных подкаталогах.
Ответ 4
Это невозможно сделать с помощью чистого HTML.
Однако, если у вас есть доступ к PHP на сервере Apache (вы отметили сообщение "apache" ), это можно сделать easilly - se функция PHP glob. Если нет - вы можете попробовать Server Side Include - это вещь Apache, и я мало знаю об этом.
Ответ 5
Вы пытались разрешить это для этого каталога через .htaccess?
Options +Indexes
Я использую это для некоторых моих каталогов, где список каталогов отключен моим провайдером
Ответ 6
Знать HTML очень важно, поскольку мы можем создать наш собственный веб-сайт для наших нужд. Вы можете создать простой файл index.html
DirectoryIndex index.html
DirectoryIndex index.php
Единая директива
DirectoryIndex index.html index.php
Посмотрите здесь простой способ узнать HTML в HTML Beautifier, который поможет вам украсить или отформатировать ваш неопрятный, нечеткий HTML-код, чтобы прочитать его четко. Также он помогает практиковать больше набора кодировок в данном пространстве. Если вы допустили ошибку при изменении, она исправит вас с правильным форматом. Также очень полезно для разработчиков найти и исправить ошибки выполнения в вложенном HTML-коде.