Apache-2.2
並非所有 .htaccess 文件都被讀取
我多年來一直使用 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 文件必須已覆蓋虛擬主機。我將其設置為全部,現在它似乎工作正常。