我正在寻找修改 apache 为其默认目录列表生成的 HTML。
我已经知道如何创建一个 HEADER.html 文件,该文件包含在每一个目录列表中。我试图更改 Apache 为文件列表本身生成的实际 html;目前我的 MacOS apache 生成了以下内容,例如:
<table><tr><th><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr><tr><th colspan="5"><hr></th></tr>
<tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="ios-prototype/">ios-prototype/</a> </td><td align="right">07-Dec-2012 16:47 </td><td align="right"> - </td><td> </td></tr>
<tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="magneto-git/">magneto-git/</a> </td><td align="right">07-Dec-2012 16:46 </td><td align="right"> - </td><td> </td></tr>
<tr><th colspan="5"><hr></th></tr>
</table>
我希望我的服务器返回目录列表时生成不同的 HTML 结构(比如说 OL)。(仅供参考,我正在使用本地网络服务器进行大量移动浏览器原型设计,需要让用手指浏览正确的测试目录时不那么麻烦 — 表格结构很糟糕,虽然我可以用 CSS 修改其中的很多内容,但它仍然很麻烦。)
答案1
我将您的问题理解为“当没有索引文件时,如何自定义 Apache 显示的目录列表页面?”
如果我没记错的话,此链接有说明: http://perishablepress.com/better-default-directory-views-with-htaccess/
快速路线如下:
1)编辑站点配置(例如:/etc/apache2/sites-available/default)并在行之间添加以下行:
期权+指数
IndexOptions FancyIndexing IgnoreCase VersionSort SuppressHTMLPreamble
HeaderName /relative/path/to/header.html
(header.html 将根据当前浏览的目录加载。按照这些说明,您需要在每个要自定义的目录中都有一个 header.html。您也可以选择使用 .htaccess 仅为一个目录执行此操作)
2)重新加载 Apache(sudo /etc/init.d/apache2 reload)
3) 在所需目录中创建 header.html 文件。链接中有示例代码和样式(因为我无法在此处粘贴代码)。
在浏览器中重新加载页面,页面应该已经定制好了。我刚刚在 Ubuntu 12.04 上测试了这两个。
编辑:我已经对这个答案做了很大改动,所以 Ellen B 的评论不再适用,抱歉。不过,这是一个更好的答案,而且经过了测试。)