Список каталогов Apache как json
Возможно ли, чтобы список каталогов в apache возвращал json вместо html?
Я совершенно неопытен с Apache, но я просмотрел документацию для IndexOptions и mod_autoindex. Кажется, что нет встроенного способа настройки вывода.
3 ответа
Я посмотрел код в исходнике Apache в modules/generators/mod_autoindex.c
и генерация HTML является статической. Вы можете переписать это для вывода JSON, просто ищите все ap_rputs
а также ap_rvputs
вызовите функцию и замените HTML соответствующим JSON. Это похоже на большую работу, хотя.
Я думаю, что я бы сделал это вместо этого...
В конфигурации Apache для этого сайта измените на...
DirectoryIndex ls_json.php index.php index.html
А потом место ls_json.php
Сценарий в любой каталог, для которого вы хотите листинг в кодировке JSON:
// grab the files
$files = scandir(dirname(__FILE__));
// remove "." and ".." (and anything else you might not want)
$output = [];
foreach ($files as $file)
if (!in_array($file, [".", ".."]))
$output[] = $file;
// out we go
header("Content-type: application/json");
echo json_encode($output);
Вы можете использовать mod_dir следующим образом - создайте скрипт php и перечислите ваши каталоги, как вы хотите (задайте тип содержимого соответствующим образом).
Я написал и модуль Apache, который делает именно это
https://github.com/teknopaul/mod_upload
Проект имеет два модуля mod_jsonindex.so это тот, который вы хотите
К вашему сведению, nginx имеет встроенную индексацию json.