mod_autoindex 模块是直接将一个没有默认页面的目录中中的文件夹和文件以列表的方式呈现给用户的模块。
这里以展现 nexus 私服的类库为例,在 conf/httpd.conf 底部增加以下配置:
#将仓库中的 com/company 暴露为 releases
Alias /releases "/home/dev/dist/nexus/sonatype-work/nexus/storage/releases/com/company"
<Directory "/home/dev/dist/nexus/sonatype-work/nexus/storage/releases/com/company”>
#FollowSymLinks启用符号连接,否则只有物理资源才显示
Options Indexes FollowSymLinks
#VersionSort 按照版本排序
#SuppressHTMLPreamble去掉默认生成的HTML头和尾部
#HTMLTable输出表格形式
#ScanHTMLTitles扫描html中的head
IndexOptions VersionSort SuppressHTMLPreamble XHTML HTMLTable ScanHTMLTitles FoldersFirst
#FancyIndexing 快速列表
#SuppressDescription 不显示描述,
#SuppressRules不输出 hr
IndexOptions FancyIndexing SuppressDescription SuppressRules
#忽略文件
#IndexIgnore maven-metadata.xml *.pom *.sha1 *.md5
#自定义头尾信息
HeaderName /releases-header.html
ReadmeName /footer.html
#Descending 倒序
#Ascending正序 按照名字排序
#Date 按照时间排序
IndexOrderDefault Descending Name
ServerSignature Off
AllowOverride None
require ldap-group cn=programmer,ou=dev,ou=roles,dc=company,dc=com,dc=cn
require ldap-group cn=group_leader,ou=dev,ou=roles,dc=company,dc=com,dc=cn
require ldap-group cn=manager,ou=dev,ou=roles,dc=company,dc=com,dc=cn
require ldap-group cn=feedback,ou=roles,dc=company,dc=com,dc=cn
</Directory>
#配合LocationMatch 可以控制权限,不显示没有权限的文件
<LocationMatch "^/releases/(parent|commons|assemblies|docbook|maven|static)">
Deny from all
Satisfy All
</LocationMatch>
<LocationMatch "^/releases/(.)*/(.)*.(pom|xml|md5|sha1)$">
Deny from all
Satisfy All
</LocationMatch>