描述: | 自动生成目录索引,类似于Unix ls 命令或Win32 dir shell命令 |
---|---|
状态: | 基础 |
模块标识符: | autoindex_module |
源文件: | mod_autoindex.c |
目录的索引可以来自两个来源之一:
index.html
。该DirectoryIndex
伪指令设置要使用的一个或多个文件的名称。这由控制
mod_dir
。AddIcon
,AddIconByEncoding
和
AddIconByType
用于设置的图标显示为各种文件类型的列表; 对于列出的每个文件,将显示列出的与该文件匹配的第一个图标。这些由控制
mod_autoindex
。这两个功能是分开的,因此您可以根据需要完全删除(或替换)自动索引生成。
使用启用自动索引生成
Options +Indexes
。有关Options
更多详细信息,请参见
指令。
如果FancyIndexing
使用IndexOptions
指令提供了该选项,则列标题是控制显示顺序的链接。如果选择标题链接,将重新生成列表,并按该列中的值排序。重复选择相同的标题会在升序和降序之间切换。这些列标题链接被IndexOptions
指令的
SuppressColumnSorting
选项抑制
。
请注意,按“大小”对显示进行排序时,它是所使用文件的 实际大小,而不是显示的值-因此,即使1010字节的文件也将始终显示在1011字节的文件之前(如果按升序排列)尽管它们都显示为“ 1K”。
可以使用各种查询字符串参数来使客户端对目录列表的顺序以及列出的文件有一些控制。如果您不希望向客户端提供此控制,则该IndexOptions
IgnoreClient
选项将禁用该功能。
列排序标题本身就是自引用超链接,这些超链接添加了如下所示的排序查询选项。可以将以下任何选项添加到对目录资源的任何请求中。
C=N
按文件名对目录排序C=M
按上次修改日期对目录进行排序,然后按文件名排序C=S
按大小排序目录,然后按文件名排序C=D
按描述对目录进行排序,然后按文件名排序O=A
按升序对列表进行排序O=D
按降序对列表进行排序F=0
将列表格式化为简单列表(不是FancyIndexed)F=1
将列表格式化为FancyIndexed列表F=2
将列表格式化为HTMLTable FancyIndexed列表V=0
禁用版本排序V=1
启用版本排序P=pattern
仅列出与给定模式匹配的文件请注意,在处理了常规指令之后,将测试“ P”模式查询参数
IndexIgnore
,并且所有文件名仍与其他任何自动索引列表一样受相同的条件约束。mod_autoindex
当遇到无法识别的选项时,查询参数解析器
将突然停止。根据上表,查询参数必须格式正确。
下面的简单示例可以裁剪并保存在header.html文件中,它说明了这些查询选项。请注意,最后一个列出了“提交”按钮的未知“ X”参数,以确保在mod_autoindex遇到X = Go输入之前已对所有参数进行了解析。
<form action="" method="get">
Show me a <select name="F">
<option value="0"> Plain list</option>
<option value="1" selected="selected"> Fancy list</option>
<option value="2"> Table list</option>
</select>
Sorted by <select name="C">
<option value="N" selected="selected"> Name</option>
<option value="M"> Date Modified</option>
<option value="S"> Size</option>
<option value="D"> Description</option>
</select>
<select name="O">
<option value="A" selected="selected"> Ascending</option>
<option value="D"> Descending</option>
</select>
<select name="V">
<option value="0" selected="selected"> in Normal order</option>
<option value="1"> in Version order</option>
</select>
Matching <input type="text" name="P" value="*" />
<input type="submit" name="X" value="Go" />
</form>
描述: | 显示文件的替代文本,而不是文件名选择的图标 |
---|---|
句法: | AddAlt string file [file] ... |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
AddAlt
提供要显示的替代文本文件而不是图标FancyIndexing
。
文件是文件扩展名,部分文件名,通配符表达式或完整文件名,用于描述文件。如果String包含任何空格,则必须将其用引号("
或'
)引起来。如果客户端没有图像,禁用图像加载或无法检索图标,则会显示此备用文本。
AddAlt "PDF file" *.pdf AddAlt Compressed *.gz *.zip *.Z
描述: | 为文件显示的替代文本,而不是由MIME编码选择的图标 |
---|---|
句法: | AddAltByEncoding string MIME-encoding
[MIME-encoding] ... |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
AddAltByEncoding
提供要显示的替代文本文件而不是图标FancyIndexing
。
MIME编码是有效的内容编码,例如
x-compress
。如果String包含任何空格,则必须将其用引号("
或'
)引起来。如果客户端没有图像,禁用图像加载或无法检索图标,则会显示此备用文本。
AddAltByEncoding gzip x-gzip
描述: | 为文件显示的替代文本,而不是由MIME内容类型选择的图标 |
---|---|
句法: | AddAltByType string MIME-type
[MIME-type] ... |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
AddAltByType
设置要为文件显示的替代文本,而不是图标FancyIndexing
。
MIME-type是有效的内容类型,例如
text/html
。如果String包含任何空格,则必须将其用引号("
或'
)引起来。如果客户端没有图像,禁用图像加载或无法检索图标,则会显示此备用文本。
AddAltByType 'plain text' text/plain
描述: | 文件显示说明 |
---|---|
句法: | AddDescription string file [file] ... |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
这将设置描述显示为文件
FancyIndexing
。
文件是文件扩展名,部分文件名,通配符表达式或完整文件名,用于描述文件。
字符串用双引号("
)括起来。
AddDescription "The planet Mars" mars.gif AddDescription "My friend Marshall" friends/mars.gif
典型的默认描述字段为23个字节宽。该IndexOptions SuppressIcon
选项增加了6个字节,该选项增加了7个字节,该IndexOptions SuppressSize
选项增加了19个字节IndexOptions SuppressLastModified
。因此,描述列分配的最广泛的默认值为55字节。
由于File参数可能是部分文件名,因此请记住,部分文件名太短可能会与意外文件匹配。例如,le.html
将匹配文件,le.html
但还将匹配文件
example.html
。如果可能存在歧义,请尽可能完整地使用文件名,但请记住,将使用遇到的第一个匹配项,并AddDescription
相应地对指令列表进行
排序。
有关覆盖此列的大小或允许使用无限制长度的描述 IndexOptions
的详细信息,请参见DescriptionWidth关键字。
用定义的描述性文本AddDescription
可能包含HTML标记,例如标签和字符实体。如果description列的宽度恰好要截断带标签的元素(例如截断加粗的短语的结尾),则结果可能会影响目录列表的其余部分。
当前不支持绝对路径,并且绝对路径在运行时不匹配。通常只在htaccess上下文中使用的具有相对路径信息的参数隐式地以'* /'开头,以避免匹配部分目录名称。
描述: | 为按名称选择的文件显示的图标 |
---|---|
句法: | AddIcon icon name [name]
... |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
此套图标以显示旁边结尾的文件
名了FancyIndexing
。图标可以是一个(%转义)相对URL的图标,一个完全合格的远程URL,或格式的其中alttext
是用于非图形浏览器的图标中的文字标记。
(alttext,url)
名称可以^^DIRECTORY^^
是目录,也可以是
^^BLANKICON^^
空行(以正确格式化列表),文件扩展名,通配符表达式,部分文件名或完整文件名。
^^BLANKICON^^
仅用于格式化,因此在使用时不需要IndexOptions
HTMLTable
。
#Examples AddIcon (IMG,/icons/image.png) .gif .jpg .png AddIcon /icons/dir.png ^^DIRECTORY^^ AddIcon /icons/backup.png *~
AddIconByType
应尽可能优先于使用AddIcon
。
描述: | 在MIME内容编码选择的文件旁边显示的图标 |
---|---|
句法: | AddIconByEncoding icon MIME-encoding
[MIME-encoding] ... |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
这会将图标设置为显示在带有的文件旁边FancyIndexing
。
图标可以是一个(%转义)相对URL的图标,一个完全合格的远程URL,或格式的
其中alttext是用于非图形浏览器的图标中的文字标记。(alttext,url)
MIME编码是有效的内容编码,例如
x-compress
。
AddIconByEncoding /icons/compress.png x-compress
描述: | 在MIME内容类型选择的文件旁边显示的图标 |
---|---|
句法: | AddIconByType icon MIME-type
[MIME-type] ... |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
这组图标旁边显示到类型文件
的MIME类型的FancyIndexing
。
图标可以是一个(%转义)相对URL的图标,一个完全合格的远程URL,或格式的
其中alttext是用于非图形浏览器的图标中的文字标记。(alttext,url)
MIME-type是与必需的mime类型匹配的通配符表达式。
AddIconByType (IMG,/icons/image.png) image/*
描述: | 未配置任何特定图标时显示文件的图标 |
---|---|
句法: | DefaultIcon url-path |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
该DefaultIcon
指令将图标设置为在没有特定图标的情况下针对文件显示FancyIndexing
。
网址路径是图标的(%转义)相对URL,或完全合格的远程URL。
DefaultIcon /icon/unknown.png
描述: | 将在索引列表顶部插入的文件名 |
---|---|
句法: | HeaderName filename |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
该HeaderName
指令规定,将在指数上市的顶部被插入的文件的名称。Filename是要包含的文件的名称。
HeaderName HEADER.html
HeaderName和HeaderName ReadmeName
现在都将
Filename视为相对于用于访问被索引目录的URI路径。如果Filename以斜杠开头,则将被视为相对于DocumentRoot
。
HeaderName /include/HEADER.html
文件名必须解决与主要的内容类型的文档text/*
(例如,
text/html
,text/plain
等)。这意味着,如果脚本的实际文件类型(而不是其输出)被标记为诸如这样的指令,则文件名可以引用CGI脚本
text/html
:
AddType text/html .cgi
如果Options
MultiViews
有效,将进行内容协商。如果filename解析为静态text/html
文档(不是CGI脚本)并且启用options
Includes
或之一,则将IncludesNOEXEC
对文件进行服务器端包含的处理(请参阅
mod_include
文档)。
如果指定的文件HeaderName
包含HTML文档的开头(<html>,<head>等),则可能需要设置IndexOptions
+SuppressHTMLPreamble
,以便不重复这些标签。
描述: | 在索引页的HEAD部分插入文本。 |
---|---|
句法: | IndexHeadInsert "markup ..." |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
该IndexHeadInsert
指令指定的字符串在插入<HEAD>的索引页生成的HTML的部分。
IndexHeadInsert "<link rel=\"sitemap\" href=\"/sitemap.html\">"
描述: | 添加到列出目录时要隐藏的文件列表 |
---|---|
句法: | IndexIgnore file [file] ... |
默认: | IndexIgnore "." |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
该IndexIgnore
指令将添加到列出目录时隐藏的文件列表中。文件是外壳样式的通配符表达式或完整文件名。多个IndexIgnore伪指令添加到列表中,而不是替换被忽略文件的列表。默认情况下,列表包含.
(当前目录)。
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
该指令当前不适用于具有正则表达式参数的配置部分,例如 <DirectoryMatch>
描述: | 清空列出目录时要隐藏的文件列表 |
---|---|
句法: | IndexIgnoreReset ON|OFF |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
兼容性: | 2.3.10及更高版本 |
该IndexIgnoreReset
指令将删除IndexIgnore
从其他配置节继承来的所有文件。
<Directory "/var/www"> IndexIgnore *.bak .??* *~ *# HEADER* README* RCS CVS *,v *,t </Directory> <Directory "/var/www/backups"> IndexIgnoreReset ON IndexIgnore .??* *# HEADER* README* RCS CVS *,v *,t </Directory>
查看默认配置,以获取使用此伪指令后可能需要显式忽略的模式列表。
描述: | 目录索引的各种配置设置 |
---|---|
句法: | IndexOptions [+|-]option [[+|-]option]
... |
默认: | By default, no options are enabled. |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
该IndexOptions
指令指定目录索引的行为。选项可以是以下之一
IndexOptions HTMLTable
有效并IndexStyleSheet
定义时,会向目录列表的每一行添加一个附加的CSS类声明。而不是标准的even
和odd
类,否则将被施加到表中的每一行,一类或
其中ALT是任一与该文件的风格(例如,相关联的标准替代文字SND,
TXT,IMG等)或alt文本由各种指令之一定义。
even-ALT
odd-ALT
AddAlt*
Charset
关键字允许您指定的字符集生成的页面。默认值是UTF-8
Windows和Mac OS X以及ISO-8859-1
其他地方。(这取决于基础文件系统是否使用Unicode文件名。)
IndexOptions Charset=UTF-8
DescriptionWidth
关键字允许您指定字符的描述列的宽度。-DescriptionWidth
(或未设置)允许
mod_autoindex
计算最佳宽度。DescriptionWidth=n
将列宽固定为
n个字节宽。DescriptionWidth=*
将列增加到容纳最长描述字符串所需的宽度。
有关AddDescription
截断说明中固有的危险,请参见上一节。FoldersFirst
启用,则子目录
Zed
将在子目录之前列出,子目录
Beta
将在普通文件Gamma
和之前列出
Alpha
。
如果FancyIndexing
同时启用了此选项,则该选项才有效。
FancyIndexing
用于为花式目录列表构造一个简单表。对于启用了utf-8的平台,或者文件名或描述文本在从左到右和从右到左的阅读顺序之间交替变化,这是必要的。IconWidth
,此选项的存在将导致服务器在文件图标的标记中包含height
和
width
属性img
。这使浏览器可以预先计算页面布局,而不必等到所有图像都加载完毕。如果未为该选项提供值,则默认为Apache httpd软件随附的图标的标准高度。
如果FancyIndexing
同时启用了此选项,则该选项才有效。
IconHeight
,此选项的存在将导致服务器在文件图标的标记中包含height
和
width
属性img
。这使浏览器可以预先计算页面布局,而不必等到所有图像都加载完毕。如果未为该选项提供值,则默认为Apache httpd软件随附的图标的标准宽度。IgnoreCase
启用,则文件Zeta将在文件alfa之后列出(注意:文件GAMMA将始终在文件gamma之前列出)。
mod_autoindex
忽略来自客户端的所有查询变量,包括排序顺序(隐含
SuppressColumnSorting
。)NameWidth
关键字允许您指定以字节为单位的文件名列的宽度。-NameWidth
(或未设置)允许mod_autoindex
计算最佳宽度,但最大宽度不能超过20个字节。NameWidth=n
将列宽固定为
n个字节宽。NameWidth=*
将列增长到必要的宽度。AddDescription
则httpd将读取文档中title
元素的值
。这会占用大量CPU和磁盘。HTTP_UNAUTHORIZED
或
HTTP_FORBIDDEN
IndexOptions
IgnoreClient
。AddDescription
以获取有关设置文件描述的信息。另请参见DescriptionWidth
索引选项以限制描述列的大小。
如果FancyIndexing
同时启用了此选项,则该选项才有效。
HeaderName
的指令,该模块通常包括所述文件的标准的HTML前导码之后的内容(<html>
,
<head>
,等等)。该
SuppressHTMLPreamble
选项禁用此行为,从而使模块以头文件内容开始显示。在这种情况下,头文件必须包含适当的HTML指令。如果没有头文件,则照常生成前同步码。如果您还指定了一个ReadmeName
,并且该文件存在,则假设您可能会将结束标记放在该文件中,那么在输出中也将省略</ body> </ html>标记。SuppressIcon
并
SuppressRules
产生适当的HTML 3.2输出,最终规范禁止该块中的img
和
hr
元素pre
(用于格式化FancyIndexed列表。)FancyIndexing
同时启用了此选项,则该选项才有效。
hr
目录列表中的水平线(元素)。结合两者SuppressIcon
并
SuppressRules
产生正确的HTML 3.2输出,根据最终规范,该输出将禁止块中的img
和
hr
元素pre
(用于格式化FancyIndexed清单。)
只有FancyIndexing
同时启用了此选项,该选项才有效。
FancyIndexing
同时启用了此选项,则该选项才有效。
Last-Modified
和ETag
值。仅当操作系统和文件系统返回适当的stat()结果时才有效。某些Unix系统会这样做,OS2的JFS和Win32的NTFS卷也是如此。例如,没有OS2和Win32 FAT卷。启用此功能后,客户端或代理可以在执行HEAD
请求时跟踪对文件列表的更改。请注意,某些操作系统可以正确跟踪新文件和已删除文件,但不能跟踪目录中文件大小或日期的更改。更改现有文件的大小或日期戳不会Last-Modified
在所有Unix平台上更新
标头。
如果这是一个问题,请禁用此选项。Type
关键字允许您指定的MIME内容类型生成的页面。默认值为text / html。
IndexOptions Type=text/plain
Last Modified
字段使用的日期格式被无意中更改为2.4.0中的"%Y-%m-%d %H:%M"
从
"%d-%b-%Y %H:%M"
。设置此选项可将日期格式从2.2或更早版本恢复。VersionSort
关键字使包含版本号来排序以自然的方式的文件。字符串按常规排序,只是名称和描述中的数字子字符串根据其数字值进行比较。
foo-1.7
foo-1.7.2
foo-1.7.12
foo-1.8.2
foo-1.8.2a
foo-1.12
如果数字以零开头,则认为是分数:
foo-1.001
foo-1.002
foo-1.030
foo-1.04
XHTML
关键字的力mod_autoindex
以发射XHTML 1.0代码,而不是HTML 3.2。
如果FancyIndexing
同时启用了此选项,则该选项才有效。
注意如何IndexOptions
处理多个。
IndexOptions
现在,单个目录的多个指令合并在一起。的结果:
<Directory "/foo"> IndexOptions HTMLTable IndexOptions SuppressColumnsorting </Directory>
将等于
IndexOptions HTMLTable SuppressColumnsorting
+
或作为关键字的前缀-
)。每当遇到'+'或'-'前缀关键字时,它将被应用到当前IndexOptions
设置(该设置可能是从上级目录继承的)。但是,每当处理一个无前缀的关键字时,它都会清除所有继承的选项以及到目前为止遇到的所有增量设置。考虑以下示例:
IndexOptions +ScanHTMLTitles -IconsAreLinks FancyIndexing IndexOptions +SuppressSize
净效果等同于IndexOptions FancyIndexing
+SuppressSize
,因为未前缀FancyIndexing
的对象在其之前丢弃了增量关键字,但随后允许它们重新开始累积。
要IndexOptions
为特定目录无条件设置,请清除继承的设置,并指定没有任何前缀+
或-
前缀的关键字。
描述: | 设置目录索引的默认顺序 |
---|---|
句法: | IndexOrderDefault Ascending|Descending
Name|Date|Size|Description |
默认: | IndexOrderDefault Ascending Name |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
该IndexOrderDefault
指令与FancyIndexing
index选项结合使用。默认情况下,fancyindexed目录列表按文件名升序显示;将
IndexOrderDefault
允许您更改初始显示顺序。
IndexOrderDefault
有两个参数。第一个必须为Ascending
或
Descending
,指示排序的方向。第二个参数必须是一个关键字Name
,
Date
,Size
,或Description
,并识别主键。第二键
始终是升序文件名。
如果需要,您还可以通过添加SuppressColumnSorting
索引选项以从列顶部删除排序链接来防止客户端重新排序列表,并添加索引选项以防止客户端IgnoreClient
手动将排序选项添加到查询字符串中覆盖您的订购偏好。
描述: | 将CSS样式表添加到目录索引 |
---|---|
句法: | IndexStyleSheet url-path |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
该IndexStyleSheet
指令规定,将被用作CSS为索引中列出文件的名称。
IndexStyleSheet "/css/style.css"
将此指令与结合使用IndexOptions
HTMLTable
,可以在结果HTML中添加许多CSS类。整个表的CSS ID为indexlist
,以下类别与清单的各个部分相关联:
类 | 定义 |
---|---|
索引头 | 列表标题行 |
th.indexcolicon和td.indexcolicon | 图标栏 |
th.indexcolname和td.indexcolname | 文件名列 |
th.indexcollastmod和td.indexcollastmod | 最后修改的列 |
th.indexcolsize和td.indexcolsize | 文件大小列 |
th.indexcoldesc和td.indexcoldesc | 说明栏 |
破损 | 表格底部的水平尺 |
奇数和偶数 | 交替的偶数和奇数行 |
描述: | 将在索引列表末尾插入的文件名 |
---|---|
句法: | ReadmeName filename |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
覆写: | 指标 |
状态: | 基础 |
模块: | mod_autoindex |
该ReadmeName
指令设置将被添加到索引列表的末尾文件的名称。Filename是要包含的文件的名称,并被视为相对于要建立索引的位置而言。如果
Filename以斜杠开头(如示例2所示),则将其视为相对于DocumentRoot
。
# Example 1 ReadmeName FOOTER.html
# Example 2 ReadmeName /include/FOOTER.html
另请参见HeaderName
,其中详细描述了此行为。