Я использую сервер LAMP на Fedora 13, который работает нормально; тем не менее, я просто добавил файл .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
директивы в моих конфигурационных файлах игнорируются!
Что дает??
источник
Проверьте, присутствует ли какой-либо другой «AllowOverride None», представленный в «httpd.conf» над объявлением virtualhosts. Возможно, у вас есть «AllowOverride None» в docroot.
источник
dev.
. Тем не менее, рабочий сервер работает нормально, файлы .htaccess ведут себя точно так, как ожидается, и сервер разработки просто полностью игнорирует файл .htaccess.Три догадки:
Есть ли на самом деле пробел после запятой в строке
order deny, allow
в.htaccess
? Апачу это не нравится. Для меня на F13 я получил 500.У вас есть
AccessFileName
где-нибудь директива?Если вы используете selinux, у вас есть правильный контекст для файла (
ls -lZ
)?источник
AccessFileName
, я посмотрю вокруг, но, как я сказал в своем комментарии к ответу Дениса, конфигурация apache для этих двух серверов фактически идентична.AccessFileName .htaccess
У меня было это на новом сервере, в конце концов я понял, что перезапись мода не была включена по умолчанию.
источник