正如我在文件中看到的,一些httpd.conf
代码需要这些包装器,,,,Directory
...而有些则不需要。但我真的不明白我应该在哪里使用什么以及为什么?IfModule
Files
IfDefine
Location
例如:
正如我所见,一些包装器可以具有这样的属性,它们应该/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。
答案2
这些被称为“指令”(而不是包装器),了解它们的最佳地点是通过“指令快速参考”(这是每个人都经常使用的)。
http://httpd.apache.org/docs/2.2/mod/quickreference.html
<Directory />
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
这个没有属性的包装器可能指的是所有目录。
不是。这个 (/) 指的是 Apache 所运行驱动器的顶级目录。
另一方面,除非另一个 <Directory ...> 块覆盖了这些设置,否则此效果确实适用于该目录的所有子目录。