zoukankan      html  css  js  c++  java
  • 定制Apache索引样式

    定制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,看看自己的定制的目录有多漂亮吧!

  • 相关阅读:
    Learning ROS for Robotics Programming Second Edition学习笔记(二) indigo tools
    Learning ROS for Robotics Programming Second Edition学习笔记(一) indigo v-rep
    能源企业信息化系统中的典型客户管理数据分析模块展示
    Eclipse搭建Android5.0应用开发环境 “ndk-build”:launchingfailed问题解决
    论制造业的报表开发项目需求
    Ecplise软件Devices看到两个相同设备问题
    jquery pagination分页的两种实现方式
    linux桥接模式下配置静态ip
    linux安装jdk
    linux安装tomcat
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6168081.html
Copyright © 2011-2022 走看看