在 Apache Lounge 的 Win 7 机器上使用 Apache 2.4 64 位 VC10 构建,如何启用文件夹文件查看?我只想查看每个文件夹中没有该文件夹中的索引文件的文件。
这仅用于开发目的。我尝试使用选项索引/所有选项并重新启动我的服务器几次。我得到的只是403 Forbidden。
对于 Apache 2.4,如果您启用了目录索引,例如 index.html 或 index.php,您必须先禁用它,然后才能让文件夹和文件显示在 Web 浏览器中。
<Directory "/vhost/www/htdocs/path/to/folder">
DirectoryIndex disabled
Options Indexes
</Directory>
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 访问。
<Directory "/srv/www/htdocs">
Options +Indexes
################
Order allow,deny
Allow from all
</Directory>