我已经使用 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,它们都可以正常工作。有什么线索可以让我在这里进行故障排除吗?文件权限?
答案1
我似乎是无意中发现了答案。我在 /etc/apache2/ 中的不同文件夹中查找,发现了一个名为 users 的目录。其中有一个包含我的用户名的 .conf 文件。其中只有一个将 AllowOverride 设置为 None。这个 conf 文件肯定覆盖了 vhost。我将其设置为 all,现在似乎运行正常。