我读到过,为所有目录启用 .htaccess 会导致性能开销,因为所有子文件夹也会扫描 .htaccess 文件。
我只想读取 .htaccess 文件:/var/www/xgclan.com/public_html 和 /var/www/xgclan.com/public_html/forum
我在 apache2.conf 中配置了以下内容(针对 /var/www/xgclan.com/public_html)
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/xgclan.com/public_html>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
但这似乎不起作用..子目录也会读取 .htaccess 文件
我应该提到 xgclan.com 是一个虚拟主机。我做错了什么?
我能够使用以下命令阻止检查子目录中的 .htaccess 文件:
<Directory /var/www/xgclan.com/public_html/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
但这也阻止了 /var/www/xgclan.com/public_html/forum 中的 .htaccess 文件,因此我尝试添加以下规则来允许该特定目录:
<Directory /var/www/xgclan.com/public_html/forum>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
但这似乎不起作用。
答案1
您是否尝试过在 VirtualHost 声明中添加目录部分?
在浏览器上访问主机时,您的 error_log 输出是什么?您是否收到上述任何错误在 Apache 文档中?
好的,如果您希望 apache 仅扫描整个虚拟主机目录中的两个特定文件夹以查找 .htaccess 文件,您应该指定要禁止和允许的文件,例如:
<Directory /var/www/xgclan.com/public_html>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/xgclan.com/public_html/*/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/xgclan.com/public_html/forum>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>