Apache:如何使用模块?

Apache:如何使用模块?

正如我在文件中看到的,一些httpd.conf代码需要这些包装器,,,,Directory...而有些则不需要。但我真的不明白我应该在哪里使用什么以及为什么?IfModuleFilesIfDefineLocation

例如:

正如我所见,一些包装器可以具有这样的属性,它们应该/Applications/MAMP/htdocs仅引用文件夹:

<Directory "/Applications/MAMP/htdocs">
    Options All
    Order allow,deny
    Allow from all
</Directory>

不同于此:

<Directory />
    Options Indexes FollowSymLinks
    AllowOverride All
</Directory>

这个没有属性的包装器可能指的是所有目录。

但如果能确切知道如何管理这些模块就好了,因为这很令人困惑。

答案1

刚开始时,没有什么可以替代手册。你上面描述的指令都是Apache 核心

<Directory ...> </Directory>块适用于命名的文件系统目录及其子目录。<Directory />上面的陈述确实有一个属性 -这意味着整个文件系统。请注意,关于与同一文件系统目录或路径的一部分匹配的/不同块如何交互存在规则。<Directory ...>

<Files ... > </Files>这些指令适用于匹配的文件,例如拒绝访问名为 config.php 的文件

<Files config.php>
     order allow,deny
     deny from all
</Files>

ETC。

目录指令 Files 指令 位置指令 IfModule 指令 IfDefine 指令

答案2

这些被称为“指令”(而不是包装器),了解它们的最佳地点是通过“指令快速参考”(这是每个人都经常使用的)。

http://httpd.apache.org/docs/2.2/mod/quickreference.html

<Directory />
  Options Indexes FollowSymLinks
  AllowOverride All
</Directory>

这个没有属性的包装器可能指的是所有目录。

不是。这个 (/) 指的是 Apache 所运行驱动器的顶级目录。

另一方面,除非另一个 <Directory ...> 块覆盖了这些设置,否则此效果确实适用于该目录的所有子目录。

相关内容