这里有没有人设法让 FancyIndexing 在 Apache 2.4 中运行? - 我找到了很多指南,但它们都至少过时了 5-9 年,并且不适用于 Apache 2.4。
根据文献,花式索引属于mod_autoindex(默认情况下启用),并且要使其在最基本的层面上工作,只需要期权+指数在目录块中,如下所示:
<Directory "/var/www">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
问题是它不起作用:如果我有一个空白的索引页......
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.htm
</IfModule>
...索引页覆盖索引,或者:
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex disabled
</IfModule>
...导致显示默认的 Apache 占位符网页,就像简单地删除索引页一样。
我还应该提到,我试图实现的是我的网络目录的索引视图,以避免必须实现一堆混乱的链接页面。 - 该网站旨在作为资源站点,因此访问者可以直接移动到他们想要的页面或资源,而无需费力。此外,在这一点上,花式索引并不是绝对必要的,因为一旦索引工作完成,我就应该能够“升级”到它。
=======================================================================
这是对我的评论的补充,并进一步回复阿纳克苏纳曼回答一下,并附上我自己的笔记和观察:
在 httpd.conf 中找到 autoindex_module 的 LoadModule 指令并确保它已被取消注释:
加载模块 autoindex_module 模块/mod_autoindex.so
是的,我将其包括在内,如下所示:
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
Include conf.modules.d/*.conf
LoadModule autoindex_module modules/mod_autoindex.so
确保 Indexes 已添加到 DocumentRoot 的 Directory 块下的 Options 指令中。就您而言,Options 指令显示正常,例如:
期权指数 FollowSymLinks
不完全的:(至少在 Cent OS / RHEL / Red Hat / Fedora 上)有一个令人讨厌的陷阱,形式如下/etc/httpd/conf.d/welcome.conf。 - 这期权-指数条目需要修改为期权指数或者期权+指数,否则索引将不起作用,并且会出现客户端被服务器配置拒绝:/var/www日志文件中输入错误。
在 httpd-autoindex.conf 中,确保:
您的 IndexOptions 指令列出了 FancyIndexing,例如 IndexOptions FancyIndexing HTMLTable VersionSort。
Alias /icons/ 指向您的图标的正确目录,例如 Alias /icons/ "/path/to/Apache24/icons/"
图标路径的目录块使用与 Alias /icons/ 相同的路径,例如
这不再是必要的,因为现在一切都是预先配置的(至少对于基本索引和花哨的索引而言),并且指数期权块用于添加更多配置选项。
答案1
请注意,正如 Y Treehugger Cymru 所指出的:
除步骤 4(取消注释例如 httpd-autoindex.conf 的条目)外,下面每个步骤中列出的项目通常已默认启用,并且可能具有正确的值。
根据您的 Apache 分布,包含每个相关条目的文件的确切名称和位置可能会有所不同(例如,“httpd-autoindex.conf”可能是“autoindex.conf”)。
关于步骤 2,基于 Red Hat 的发行版(CentOS/RHEL/Fedora 等)显然也需要将
Options -Indexes
更改/etc/httpd/conf.d/welcome.conf
为Options Indexes
或Options +Indexes
。否则,索引显然无法正常工作。
要FancyIndexing
在 Apache 2.4 中工作:
查找以下
LoadModule
指令自动索引模块在httpd配置文件并确保它没有被注释掉:LoadModule autoindex_module modules/mod_autoindex.so
确保
Indexes
已添加到你的Options
指令中,并位于Directory
你的块下DocumentRoot
。就你的情况而言,你的Options
指令显示正常,例如:Options Indexes FollowSymLinks
使用默认
dir_module
块应该没问题(您不需要禁用它)例如:<IfModule dir_module> DirectoryIndex index.htm </IfModule>
寻找
Include
httpd-自动索引配置文件在......的最后httpd配置文件并确保它没有被注释掉:Include conf/extra/httpd-autoindex.conf
在httpd-自动索引配置文件, 确保:
您的
IndexOptions
指令已FancyIndexing
列出例如IndexOptions FancyIndexing HTMLTable VersionSort
。Alias /icons/
指向图标的正确目录,例如Alias /icons/ "/path/to/Apache24/icons/"
Directory
图标路径的块使用与例如相同的Alias /icons/
路径<Directory "/path/to/Apache24/icons/">
完成这些步骤后,重新启动服务器并删除/重命名您想要显示的目录中的所有索引文件FancyIndexing
。
示例结果
例如,正常 Apache 索引
例如 FancyIndex Apache 索引