11

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

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

4

2 回答 2

10

我查看了 apache 源代码中的代码,modules/generators/mod_autoindex.cHTML 生成是静态的。您可以将其重写为输出 JSON,只需搜索所有ap_rputsap_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);
于 2013-12-08T00:31:32.940 回答
1

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

于 2013-12-08T00:19:10.333 回答