8

在 Apache Lounge 的 Win 7 机器上使用 Apache 2.4 64 位 VC10 构建,如何启用文件夹文件查看?我只想查看每个文件夹中没有该文件夹中的索引文件的文件。

这仅用于开发目的。我尝试使用选项索引/所有选项并重新启动我的服务器几次。我得到的只是403 Forbidden。

4

3 回答 3

8

对于 Apache 2.4,如果您启用了目录索引,例如 index.html 或 index.php,您必须先禁用它,然后才能让文件夹和文件显示在 Web 浏览器中。

<Directory "/vhost/www/htdocs/path/to/folder">
 DirectoryIndex disabled
 Options Indexes
</Directory>
于 2015-01-26T07:27:40.387 回答
5

Apache 中的指令已从 2.2 版本更改为 2.4 及更高版本。

我正在运行 2.4.7 版,基本的 vhost 文件如下所示:

<VirtualHost 192.168.1.5:80>

  DocumentRoot /srv/html/
  ServerName some.placeoverthe.rainbow

 <Directory /srv/html/>
   Options Indexes  ## Allows directory browsing.
   Require all granted  ## Allow all request
 </Directory>

</VirtualHost>

取自 Apache 网站:https ://httpd.apache.org/docs/2.4/upgrading.html

以下是执行相同访问控制的一些新旧方法的示例。

在此示例中,所有请求都被拒绝。

2.2 配置:

Order deny,allow
Deny from all

2.4 配置:

Require all denied

在此示例中,允许所有请求。

2.2 配置:

Order allow,deny
Allow from all

2.4 配置:

Require all granted

在下面的例子中,example.org 域中的所有主机都被允许访问;所有其他主机都被拒绝访问。

2.2 配置:

Order Deny,Allow
Deny from all
Allow from example.org

2.4 配置:

Require host example.org

目录索引

取自 Apache 网站:http ://httpd.apache.org/docs/2.4/mod/core.html

Options 指令控制特定目录中可用的服务器功能。

选项可以设置为无,在这种情况下不启用任何额外功能,或者以下一项或多项:

全部

  All options except for MultiViews.

执行CGI

  Execution of CGI scripts using mod_cgi is permitted.

跟随符号链接

服务器将遵循此目录中的符号链接。这是默认设置。

即使服务器遵循符号链接,它也不会更改用于匹配部分的路径名。

FollowSymLinks 和 SymLinksIfOwnerMatch 选项仅适用于节或 .htaccess 文件。

忽略此选项不应被视为安全限制,因为符号链接测试受制于使其可以规避的竞争条件。

包括

Server-side includes provided by mod_include are permitted.

包括NOEXEC

Server-side includes are permitted, but the #exec cmd and #exec cgi are disabled. It is still possible to #include virtual CGI scripts from ScriptAliased directories.

索引

如果请求映射到目录的 URL,并且该目录中没有 DirectoryIndex例如index.html),则mod_autoindex将返回该目录的格式化列表。

多视图

使用 mod_negotiation 允许内容协商“MultiViews”。

注意: 如果设置在 以外的任何地方,此选项将被忽略,因为
mod_negotiation 需要真实资源来比较和评估。

SymLinksIfOwnerMatch

The server will only follow symbolic links for 
which the target file or directory is owned by 
the same user id as the link. 

附带说明:您可能需要检查并确保运行 apache 的用户有权从该目录读取。在 Windows 上,这可能不是问题,但在 Linux 上,这很可能是一个问题。在大多数 Linux 发行版上,默认用户通常是:

www-数据

因此,如果该目录由运行 apache 的用户以外的其他人拥有,则您需要更改该目录的权限以允许 apache 访问。

于 2016-01-10T20:00:33.600 回答
1
<Directory "/srv/www/htdocs"> 
        Options +Indexes
        ################
        Order allow,deny 
        Allow from all 
</Directory>
于 2012-05-28T19:47:13.553 回答