Apache-2.2

指定要查找 .htaccess 文件的目錄

  • March 21, 2015

我讀到為所有目錄啟用 .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>

但這似乎不起作用。

您是否嘗試使用 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>

引用自:https://serverfault.com/questions/677206