我现在正在 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>
答案1
文档根目录是 Web 服务器上的某个位置,当用户访问时,Web 服务器将从该位置提供文件http://prestashop16.dev/。所有网络可见文件都应位于该文件夹的级别或以下。
这目录块允许您指定仅适用于特定目录的 Apache 配置规则。
两者不必匹配,并且<Directory>
根据 Apache 文档,可以将块放在 VirtualHost 块内或通用服务器配置中。
此外,您还可以拥有多个目录块。例如,如果您的 DocumentRoot 是,var/www
并且您想要限制对它的访问,那么/var/www/private
您可以创建<Directory /var/www/private></Directory>
块并将所需的安全配置放在其中,而不会影响其他文件夹。