阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

定制与美化Apache的目录列表(索引)样式

112次阅读
没有评论

共计 5013 个字符,预计需要花费 13 分钟才能阅读完成。

定制与美化 Apache 的目录列表(索引)样式

# 表示开启了索引模式(也就是目录浏览)
Options Indexes

indexOptions FancyIndexing ScanHTMLTitles NameWidth=128 DescriptionWidth=256 HTMLTable VersionSort FoldersFirst

可用参数,含义如下:

#ScanHTMLTitles: 搜索 HTML 标题
#NameWidth: 文件命显示字节数
#DescriptionWidth: 描述显示字节数
#HTMLTable: 允许 HTML 格式
#FoldersFirst: 目录优先

SuppressLastModified 在目录中禁止显示最近的修改时间

# 索引排除语法

IndexIgnore header.html footer.html

header.html footer.html 这两个文件不会在索引(目录浏览)中出现。

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

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

ReadmeName:指定该目录列表的 footer 模板,指定一个 html 文件后,Apache 会在目录列表的底部加载这个网页。(注意:文件路径是相对于列表目录的根而言的,并不是相对于系统根或者网站根。)
HeaderName:指定该目录列表的 header 模板,指定一个 html 文件后,Apache 会用这个网页替换掉默认目录列表上面呆板的 Index of …..。(注意:文件路径是相对于列表目录的根而言的,并不是相对于系统根或者网站根。)

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

# 关闭服务器标志
ServerSignature Off

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

索引风格控制命令:
IndexOptions Directive //Dirctive 是命令选项,见下面实例

下面介绍常用的设置(都写在 httpd.conf 文件中):
修改自动目录索引的宽度
缺省设置下,Apache 默认每栏宽度是 23 字节,对于文件名来说,实在是太短了。一般要求 60 字节
IndexOptions NameWidth=60

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

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

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

图标优化
默认的图标有不少比较难看,而且还有很多文件类型就没有图标,由于 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,哈哈,终于看到了。可是,有几个类型还是没有显示出来 L,它们是:rar,srm,mdb。
又仔细分析了一下配置文件,发现可能和文件类型有关。
Apache 有一个专门负责文件类型的文件:mime.types,里面为每个文件进行了详细分类。比如有:application,image,audio,video。在里面狂搜了一遍,没有上面的那三个类型,于是在前面增加如下定义:
# MIME type Extensions
application/winrar rar
application/srm srm
application/access mdb

重新启动 apache,OK。

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

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

1. 安装 apache:pacman -S apache

2. 配置 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

所作的修改就这么多,其它的都是系统默认,不考虑安全、性能等,基本能正常跑起来了。

3. 运行 apache:httpd -k start

简单的配置就这么多,Apache 的配置和组合还有好多好多,以后再细细研究

个性化 Apach2 目录列表

个性化 Apach2 目录列表,主要取决于对 modautoindex 模块中的各种指令的使用和配合。可以去先阅读一下 Apache2.0 手册中的 modautoindex 模块文档。

文档地址:[url]http://httpd.apache.org/docs/2.0/mod/mod_autoindex.html[/url]

在开始之前,请看一个个性化目录列表的演示地址:[url]http://nanu.8866.org/download[/url]

下面,我们就开始动手:

一、修改 httpd.conf 文件

对需要个性化的目录进行定制:

<Directory“/www/download”>
Options Indexes FollowSymlinks
IndexOptions FancyIndexing ScanHTMLTitles NameWidth=25 DescriptionWidth=128 VersionSort FoldersFirst
IndexIgnore favicon.ico header.html footer.html images
HeaderName header.html
ReadmeName footer.html
AddDescription“Qmail 安装包”qmail.tar.gz
AddDescription“Putty0.58”putty.exe
AddDescription“我的 MSN 头像:P”msn.gif
IndexOrderDefault Ascending Name
AllowOverride None
Order allow,deny
Allow from all
< /Directory>

部分指令说明:

ScanHTMLTitles:如果目录中含有 HTML 文件,则 Apache 会自动读取 HTML 文件的 < title>……部分,用 HTML 文件的标题作为 Description(描述)显示在列表目录中的 Description 部分。。(注意:加载该指令会加大 CPU 的负荷!)

NameWidth=25:指定目录列表可以显示最长为 25 字节的文件 / 目录名, 如果使用 * 来做值, 会自适应到最长文件名。

DescriptionWidth=128:指定目录列表可以显示最长为 128 字节的文件 / 目录描述内容。

VersionSort:如果目录中含有同一文件的不同版本,则 Apache 会对该文件按照版本号自动排序。

FoldersFirst:最先列出文件夹会使显示效果更好看一些吧!

IndexIgnore:在它后面设定的文件 / 目录不会在目录列表中显示。

HeaderName:指定该目录列表的 header 模板,指定一个 html 文件后,Apache 会用这个网页替换掉默认目录列表上面呆板的 Index of ….. 而显示出个性化的头网页。(注意:文件路径是相对于列表目录的根而言的,并不是相对于系统根或者网站根而言的!)

ReadmeName:指定该目录列表的 footer 模板,指定一个 html 文件后,Apache 会在目录列表的底部加载这个网页。(注意:文件路径是相对于列表目录的根而言的,并不是相对于系统根或者网站根而言的!)

AddDescription:如果你想为某个文件设置一个 Description(描述)的话,就使用这个指令,格式是 AddDescription“描述”文件名。

IndexOrderDefault Ascending Name:指定目录列表的排序方式为按名称排序。

当然,还可以定制很多其他的内容,包括可以为每一个文件设定一个图标等等,去读文档吧。

二、建立 header.html 和 footer.html

这两个文件是列表目录的头网页和尾网页,也是个性化的关键。其实这部分和 Apache 水平已经没有什么关系了,主要还是看你制作网页水平如何了,呵呵。

这里给出两个文件的格式:

header.html:

<!– 个性化内容开始 –>
可以在这里加入个性化内容,图片、FLASH、表格等等,随意啦!
< !– 个性化内容结束 –>
< !– 嵌入列表目录 –>
<table>
< td>
< tr>
footer.html:

</tr>
< /td>
< /table>
< !– 目录列表嵌入结束 –>
< !– 个性化内容开始 –>
可以在这里加入个性化内容,图片、FLASH、表格等等,随意啦!
< !– 个性化内容结束 –>

可以看出,其实个性化的原理就是把 Apache 的目录列表嵌在了 header.htm 的 </table>< /tr></td> 与 footer.html 的 <//td><//tr><//table> 之间,两个文件的其他部分都可以自定义内容的。

建立好这两个文件后,就可以重启 apache,看看自己的定制的目录有多漂亮吧!

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139442.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计5013字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中