我在Fedora 13上运行的LAMP服务器运行正常;但是,我只是将“ .htaccess”文件添加到当前站点的docroot文件夹中,而该文件被完全忽略了。
我尝试了六种不同的测试,其中包括:
RewriteEngine on
RewriteBase /
RewriteRule ^.*$ index.php
但是图像和所有其他页面都可以正常加载,并且不存在的文件仍然是404。我还尝试了以下操作:
order deny,allow
deny from all
但是每个页面仍然可以正常加载。同样,.htaccess文件只是100%被忽略。
我们将虚拟主机记录放在/etc/httpd/conf.d/virtual.conf中。看起来像这样:
NameVirtualHost *
<VirtualHost *>
ServerName intranet
DocumentRoot /var/www/default
<Directory "/var/www/default">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *>
ServerName ourwebsite.com
DocumentRoot /var/www/html/ourwebsite.com/docroot
<Directory "/var/www/html/ourwebsite.com/docroot">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
还有什么可能导致我们的服务器完全忽略该.htaccess
文件?
编辑:
我将.htaccess文件更改为上述内容,以更好地证明我的更改被忽略了。请注意,我在生产服务器上尝试了完全相同的.htaccess文件,并且工作正常。
编辑2:
好的,我有新信息!仅出于测试目的,我经历了并将每个“ AllowOverride”指令临时更改为的过程AllowOverride All
。我发现目录的第一个条目似乎压倒了所有其他条目:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
当我将其更改AllowOverride All
为时,我的.htaccess文件开始生效。就像AllowOverride All
我的配置文件中的所有其他指令都被忽略了一样!
是什么赋予了??