秋梦无痕

一场秋雨无梦痕,春夜清风冻煞人。冬来冷水寒似铁,夏至京北蟑满城。

Avatar

Apache目录列表模式定制个性化界面

from: http://bbs.chinaunix.net/forum/13/20041006/419352.html

首先请参考:Mod_AutoIndex模块
http://w.yi.org/ftp/FAPM/apache/Apache2/zh/mod/mod_autoindex.html

以下只是展示了其中很少一部分设置的用法,要想获得更好的效果,请自己查看Mod_AutoIndex模块的文档。

演示:http://w.yi.org/ftp

<Directory "/path/to/you/folder">

#开启目录列表索引模式
Options Indexes

#参数设置
IndexOptions FancyIndexing ScanHTMLTitles
NameWidth=128 DescriptionWidth=256
HTMLTable VersionSort FoldersFirst
#ScanHTMLTitles:搜索HTML标题
#NameWidth:文件命显示字节数
#DescriptionWidth:描述显示字节数
#HTMLTable:允许HTML格式
#FoldersFirst:目录优先

#索引排除选项
IndexIgnore header.html footer.html

#索引头部嵌入文件
HeaderName /data/index/header.html
#索引底部嵌入文件
ReadmeName /data/index/footer.html

#默认索引排序方式
IndexOrderDefault Ascending Date

#关闭服务器标志
ServerSignature Off

#目录索引文件
DirectoryIndex index.htm
</Directory>

以下配置文件内容,演示了如何把基本目录列表信息完整的嵌入到一个HTML网页之中
#索引头部嵌入文件
HeaderName /data/index/header.html

<!--// 网页基本信息以及修饰配置部分_Start//-->
<!--// 网页基本信息以及修饰配置部分_End//-->
<table>
<tr>
<td>
<!--// 目录内容开始显示部分_Start//-->

#索引底部嵌入文件
ReadmeName /data/index/footer.html

<!--// 目录内容开始显示部分_EnD//-->
</td>
<td>
<!--// 其他修饰部分,例如我的美美老婆的图片啊//-->
</td>
</tr>
</table>
<!--// 网页尾部基本信息以及修饰配置部分_Start//-->
<!--// 网页尾部基本信息以及修饰配置部分_End//-->

生成个性化的目录列表页面的过程
1、读取#索引头部嵌入文件HeaderName /data/index/header.html 并输出
2、服务器生成目录列表信息并输出

<table>
<tr>
<th><img src="/icons/blank.gif" alt="[ICO]" /></th>
<th><a href="?C=N;O=A">Name</a></th>
<th><a href="?C=M;O=D">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/back.gif" alt="[DIR]" /></td>
<td><a href="/">Parent Directory</a></td>
<td>&</td><td align="right"> - </td>
</tr>
<tr>
<td valign="top"><img src="/icons/folder.gif" alt="[DIR]" /></td>
<td><a href="3.PHP-MYSQL/">3.PHP-MYSQL/</a></td>
<td align="right">11-Nov-2003 13:19 </td>
<td align="right"> - </td>
</tr>
<tr>
<td valign="top"><img src="/icons/folder.gif" alt="[DIR]" /></td>
<td><a href="2.WEB-Server/">2.WEB-Server/</a></td>
<td align="right">11-Nov-2003 13:19 </td>
<td align="right"> - </td>
</tr>
<tr>
<td valign="top"><img src="/icons/folder.gif" alt="[DIR]" /></td>
<td><a href="1.FreeBSD/">1.FreeBSD/</a></td>
<td align="right">11-Nov-2003 13:28 </td>
<td align="right"> - </td>
</tr>
<tr>
<td valign="top"><img src="/icons/layout.gif" alt="[DIR]" /></td>
<td><a href="FAPM/">FAPM/</a></td>
<td align="right">23-Aug-2004 10:17 </td>
<td align="right"> - </td>
<td>FAPM 豪华手册</td>
</tr>
<tr>
<td valign="top"><img src="/icons/folder.gif" alt="[DIR]" /></td>
<td><a href="incoming/">incoming/</a></td>
<td align="right">28-Sep-2004 13:16 </td>
<td align="right"> - </td>
</tr>
<tr>
<th colspan="5"><hr /></th>
</tr>
</table>

3、读取#索引底部嵌入文件ReadmeName /data/index/footer.html 并输出
以上三个部分的输出组成一个完整的网页,可以看出,基本目录列表信息是动态生成为一段表格的HTML内容,只需要适当定制你的HTML页面,然后把页面分割为头部和尾部,使得基本目录列表信息刚好嵌入到你所指定的位置,那么你就可以任意定制一个花里胡哨的个性化目录列表页面了。

附:
AllowOverride以及Options相关指令

apache的配置文件httpd.conf是主要的配置文件,但是针对每个目录,apache还允许在它们各自的目录下防止一个叫做.htacess的文件,这个文件同样也能控制这个目录的属性
AllowOverride参数就是指明Apache服务器是否去找.htacess文件作为配置文件,如果设置为none,那么服务器将忽略.htacess文件,如果设置为All,那么所有在.htaccess文件里有的指令都将被重写 。 对于AllowOverride,还可以对它指定如下一些能被重写的指令类型.
1 AuthConfig 允许使用所有的权限指令,他们包括AuthDBMGroupFile AuthDBMUserFile AuthGroupFile AuthName AuthTypeAuthUserFile和Require
2 FileInfo 允许使用文件控制类型的指令 。 它们包括AddEncoding AddLanguage AddType DEfaultType ErrorDocument LanguagePriority
3 Indexes 允许使用目录控制类型的指令 。 它们包括AddDescription AddIcon AddIconByEncoding AddIconByType DefaultIcon DirectoryIndex FancyIndexing HeaderName IndexIgnore IndexOptions ReadmeName
4 Limit 允许使用权限控制指令 。 它们包括Allow Deny和Order
5 Options 允许使用控制目录特征的指令.他们包括Options 和XBitHack

Options

1 All 准许以下除MultiViews以外所有功能
2 MultiViews 允许多重内容被浏览,如果你的目录下有一个叫做foo.txt的文件,那么你可以通过/foo来访问到它,这对于一个多语言内容的站点比较有用
3 Indexes 若该目录下无index文件,则准许显示该目录下的文件以供选择
4 IncludesNOEXEC 准许SSI,但不可使用#exec和#include功能
5 Includes 准许SSI
6 FollowSymLinks 在该目录中,服务器将跟踪符号链接 。 注意,即使服务器跟踪符号链接,它也不会改变用来匹配不同区域的路径名,如果在标记内设置,该选项会被忽略
7 SymLinksIfOwnerMatch 在该目录中仅仅跟踪本站点内的链接
8 ExecCGI 在该目录下准许使用CGI

很实用。。。

http://pcman.sinzy.net/

偶的空间就是直接indexes ...

评论已关闭