我是否正确使用了 Apache 上的 Options 指令?

我是否正确使用了 Apache 上的 Options 指令?

当我尝试通过浏览器访问根目录时,我尝试不列出任何文件,并且没有任何关联的主页。

我要做的是转到apache2.conf目录中的文件/etc/apache2并修改此行:

Options Indexes FollowSymLinks 

更改为:

Options -Indexes

然后我进入目录/etc/apache2/mods-enabled并转到dir.conf我注释以下行的文件:

#DirectoryIndex mainpage.html index.html ...

之后,我重新启动 Apache:

/etc/init.d/apache2 restart

当我尝试在浏览器中访问该 URL localhost:81(我正在监听端口 81)时,会出现一个包含以下消息的页面:

Forbidden
You don't have permission to access / on this server.

所以我有一些问题

  • FollowSymLinks为什么使用时必须删除-Indexes?如果我不删除,则在尝试重新启动 Apache 时会出现错误。

  • 出现消息是正常的吗Forbidden?我认为它应该显示一个空的根目录,而不是禁止消息。

提前致谢!

答案1

FollowSymLinks为什么使用时必须删除-Indexes?如果我不删除,则在尝试重新启动 Apache 时会出现错误。

看一下我执行此操作时出现的错误:

* The apache2 configtest failed.
Output of config test was:
AH00526: Syntax error on line 165 of /etc/apache2/apache2.conf:
Either all Options must start with + or -, or no Option may.
Action 'configtest' failed.
The Apache error log may have more information.

Apache 只是抱怨每个选项行可能只有+选项或-选项,不是都

如果要同时使用两者,则必须将它们分成两行,如下所示:

Options FollowSymLinks
Options -Indexes

至于为什么会这样,可能单独解析每一行会更容易。这就是它的设计方式。


出现消息是正常的吗Forbidden?我认为它应该显示一个空的根目录,而不是禁止消息。

需要注意的是,+Indexes只有在没有DirectoryIndex声明的情况下才会生效。在此期间,它会显示文件列表(有点像) 而不是您的index.html或任何其他内容。通过使用,您告诉 Apache 如果未找到 (或者,未设置并且未找到),-Indexes则显示禁止错误。DirectoryIndexindex.html

相关内容