Apache文件列表服务器美化 index of /

目录 原创

· 示例站点:下一朵云开源软件镜像站 https://download.orcy.net:8027/

· index of / 和 站点ico图标美化在本文末尾部分

在Apache中有目录索引是由mod_autoindex模块负责完成的。它把当前目录结果转换成html页面。在默认情况下,有很多地方让人感觉不爽,比如文件名宽度太窄只有可怜的23字节,图标太大,有点傻傻的,好多文件类型没有关联。幸好Apache开发人员早就想到这一点,提供了让用户定制的命令。

索引风格控制命令:

IndexOptions Directive //Dirctive 是命令选项,见下面实例

下面介绍常用的设置(都写在httpd.conf文件中):

1.修改自动目录索引的宽度
缺省设置下,Apache默认每栏宽度是23字节,对于文件名来说,实在是太短了。一般要求60字节

IndexOptions NameWidth=60

2.修改图标尺寸
系统默认好像是24,经过试验,发现16的效果比较好。

IndexOptions IconHeight=16
IndexOptions IconWidth=16

3.目录优先
系统默认是文件优先,和我们平时的习惯不一致。改过来。

IndexOptions FoldersFirst

4.版本排序
无须多说,加上吧。对于中文来说,是按照拼音顺序排序的。

IndexOptions VersionSort

5.图标优化
默认的图标有不少比较难看,而且还有很多文件类型就没有图标,由于Solaris不支持Microsoft定义的各种文档类型,显示这些文件时都用问号图标表达,或许代表Sun对Microsoft的态度,不过我可不这么认为,凡事还是清楚点好。

定制文件图标分两步,先用图标工具抓取常用图标,象Word,Excel,Powerpint,Rar,Pdf。另外,默认的目录图标看上去也不爽,干脆把 Window的那套东西都搬过来。完成后,把这些图标(格式为gif或png)全部存到/usr/local/apache2/icons目录下。对于目录图标,我直接用微软的图标替换了那个名字叫folder.gif的文件。

接下来,用AddIcon命令把图标和文件类型关联起来。

AddIcon /icons/word.gif .doc .DOC
AddIcon /icons/excel.gif .xls .XLS
AddIcon /icons/rar.gif .rar .RAR
AddIcon /icons/srm.gif .srm .SRM
AddIcon /icons/powerpoint.gif .ppt .PPT
AddIcon /icons/access.gif .mdb .MDB

完成后,重新启动apache,成功显示。可是,有几个类型还是没有显示出来,它们是:rar,srm,mdb。
又仔细分析了一下配置文件,发现可能和文件类型有关。
Apache有一个专门负责文件类型的文件:mime.types,里面为每个文件进行了详细分类。比如有:application,image,audio,video。在里面狂搜了一遍,没有上面的那三个类型,于是在前面增加如下定义:

# MIME type Extensions
application/winrar rar
application/srm srm
application/access mdb

6.Apache目录索引的简易配置

使用Apache配置简易的目录索引,登录者可以方便浏览、下载目录之下的内容。

过程:(以下均为有root权限时的操作)

配置apache:vi /etc/httpd/conf/httpd.conf

管理员的E-mail,出错时发送错误的邮件地址
ServerAdmin [email]HeirJoe@gmail.com[/email]

服务器名,没有域名就写IP
ServerName My IP:80

主目录地址
DocumentRoot “/path/to/server”

设置默认主目录的权限,下面需要用到
Order deny,allow
Allow from all

使用别名,将系统绝对路径转换为相对于DocumentRoot的相对路径
Alias /home “/home/httpd”

配置浏览目录的选项

选项为索引方式
Options Indexes

索引选项,目录优先
IndexOptions FancyIndexing FoldersFirst

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

索引头部嵌入文件(只可使用相对http主目录的相对路径,而不是系统的绝对路径)
HeaderName /home/html/header.html
索引底部嵌入的文件(同上,”/home”使用了别名,同时要为那个目录设置权限)
ReadmeName /home/html/footer.html

关闭服务器标志
ServerSignature Off

使用.htaccess文件可以得到的控制水平
AllowOverride None

控制访问权限
Order allow,deny
Allow from all

· 上边所有的美化都做完以后,你会发现浏览器标签页的<title>和网站的ico图标还是默认的丑陋状态,该如何处理呢?

IndexOptions +SuppressHTMLPreamble

来自Apache mod_autoindex docs
If the file specified by HeaderName contains the beginnings of an HTML document (<html>, <head>, etc.) then you will probably want to set IndexOptions +SuppressHTMLPreamble, so that these tags are not repeated.

需要在配置文件添加IndexOptions +SuppressHTMLPreamble,然后在header.html和footer.html文件中填写完整的<html>、<head>标签即可。

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注