Как создать простой файл 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-коде.