Apache-2.2

並非所有 .htaccess 文件都被讀取

  • March 14, 2013

我多年來一直使用 MAMP 和 Ubuntu 伺服器,但最近嘗試在 Mac OS X 10.7.5 上使用內置的 Apache 伺服器。我的問題是我的一些 .htaccess 文件正在被讀取,而有些則沒有。我有 2 個站點,這裡是他們的虛擬主機設置:

<VirtualHost *:80>
   ServerName site1.rob
   DocumentRoot /Users/username/Sites/localSites/site1/public/
   <Directory />
       Options Indexes FollowSymLinks MultiViews
       AllowOverride All
       Order allow,deny
       allow from all
   </Directory>
</VirtualHost>

<VirtualHost *:80>
   ServerName site2.rob
    DocumentRoot /Users/username/Documents/Dropbox/site2/public/
    <Directory />
       Options Indexes FollowSymLinks MultiViews
       AllowOverride All
       Order allow,deny
       allow from all
    </Directory>
</VirtualHost>

站點 1 正常工作,但站點 2 沒有。所以我做了一個測試。在每個 .htaccess 文件中,我都進行了環境檢查。

SetEnv HTACCESS on

然後我用這個檢查在根目錄中創建了一個 PHP 文件。

var_dump($_SERVER['HTACCESS']);

我對站點 1 的string(2) "on"

輸出是: 我對站點 2 的輸出是:null

如果我只是去 /index.php 在這兩個站點上它們都可以正常工作。有什麼線索可以從這裡進行故障排除嗎?文件權限?

我似乎無意中發現了答案。我在 /etc/apache2/ 中查看不同的文件夾,發現看到了一個名為 users 的目錄。裡面有一個帶有我的使用者名的 .conf 文件。在那裡只有一個將 AllowOverride 設置為 None。此 conf 文件必須已覆蓋虛擬主機。我將其設置為全部,現在它似乎工作正常。

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