Apache目录列表为json

是否有可能在Apache目录列表返回JSON而不是HTML?

我对Apache完全没有经验,但是我浏览了IndexOptions和mod_autoindex的文档。 似乎没有内置的方式来configuration输出。

    我在modules/generators/mod_autoindex.c查看了apache源代码,并且HTML生成是静态的。 你可以重写这个来输出JSON,只需搜索所有的ap_rputsap_rvputs函数调用,并用合适的JSON代替HTML。 这似乎是很多工作,虽然。

    我想我会这样做,而不是…

    在此站点的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是你想要的

    FYI nginx内置json索引。