I looked at the code in apache source in modules/generators/mod_autoindex.c
and the HTML generation is static. You could rewrite this to output JSON, simply search for all the ap_rputs
and ap_rvputs
function calls and replace the HTML with the appropriate JSON. That's seems like a lot of work though.
I think I would do this instead...
In the Apache configuration for this site, change to...
DirectoryIndex ls_json.php index.php index.html
And then place ls_json.php
script into the any directory for which you want a JSON encoded listing:
// 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);
caddy
does it ootb if the request comes with the headerAccept: application/json
– Etiolate