我现在在 Mac OS 10.9.2 的本地环境中设置虚拟主机我正在从另一个配置复制它。我的问题是,DocumentRoot 和 Directory 之间有什么区别,它们必须匹配吗?我是否必须在 VirtualHost 配置中包含 Directory?
<VirtualHost *:80>
DocumentRoot "/Users/memyselfandi/websites/prestashop16.dev"
ServerName prestashop16.dev
ErrorLog "/private/var/log/apache2/prestashop16.local-error_log"
CustomLog "/private/var/log/apache2/prestashop16.local-access_log" common
<Directory "/Users/memyselfandi/websites/workspace/dev">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
Kei*_* B. 11
DocumentRoot是您的 Web 服务器上的位置,如果用户访问http://prestashop16.dev/,Web服务器将从该位置提供文件。您的所有 Web 可见文件都应处于或低于该文件夹的级别。
该目录块,您可以指定应只适用于特定目录的Apache配置规则。
<Directory>
根据 Apache 文档,两者不必匹配,并且可以将块放置在 VirtualHost 块中或一般服务器配置中。
此外,您可以有多个目录块。例如,如果您的 DocumentRoot 是var/www
并且您想限制对/var/www/private
您的访问,您可以创建<Directory /var/www/private></Directory>
块并将所需的安全配置放在那里,而不会影响其他文件夹。