Apache 在默认页面的位置显示 / 索引吗?

Apache 在默认页面的位置显示 / 索引吗?

这里有没有人设法让 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.confOptions IndexesOptions +Indexes。否则,索引显然无法正常工作。


FancyIndexing在 Apache 2.4 中工作:

  1. 查找以下LoadModule指令自动索引模块httpd配置文件并确保它没有被注释掉:

    LoadModule autoindex_module modules/mod_autoindex.so
    
  2. 确保Indexes已添加到你的Options指令中,并位于Directory你的块下DocumentRoot。就你的情况而言,你的Options指令显示正常,例如:

    Options Indexes FollowSymLinks
    
  3. 使用默认dir_module块应该没问题(您不需要禁用它)例如:

    <IfModule dir_module>
        DirectoryIndex index.htm
    </IfModule>
    
  4. 寻找Includehttpd-自动索引配置文件在......的最后httpd配置文件并确保它没有被注释掉:

    Include conf/extra/httpd-autoindex.conf
    
  5. 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 索引

花式索引

相关内容