Apache目录列为json

时间:2013-12-08 00:14:22

标签: apache directory-listing mod-autoindex

是否可以让apache中的目录列表返回json而不是html?

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

2 个答案:

答案 0 :(得分:7)

我查看了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);

答案 1 :(得分:1)

您可以按如下方式使用mod_dir - 创建一个php脚本并按照您的需要列出您的目录(根据需要设置内容类型)。