Estou executando um servidor LAMP no Fedora 13 que está funcionando bem; no entanto, acabei de adicionar um arquivo ".htaccess" à pasta docroot do meu site atual que está sendo completamente ignorada.
Eu tentei meia dúzia de testes diferentes, incluindo este:
RewriteEngine on
RewriteBase /
RewriteRule ^.*$ index.php
Mas as imagens e todas as outras páginas carregam bem, e os arquivos inexistentes ainda são 404. Eu também tentei isso:
order deny,allow
deny from all
Mas cada página ainda carrega muito bem. Novamente, o arquivo .htaccess é simplesmente ignorado 100%.
Colocamos nossos registros de host virtual em /etc/httpd/conf.d/virtual.conf. Se parece com isso:
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>
O que mais poderia estar causando o nosso servidor ignorar completamente o .htaccess
arquivo?
Editar:
Alterei o arquivo .htaccess para acima para demonstrar melhor que minhas alterações estão sendo ignoradas. Observe que eu tentei exatamente o mesmo arquivo .htaccess no servidor de produção e funcionou bem.
Edição 2:
OK, tenho novas informações! Apenas para fins de teste, eu passei e mudei temporariamente TODAS as diretivas "AllowOverride" para AllowOverride All
. Eu descobri que a primeira entrada do Diretório parece dominar todas as outras:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
Quando mudei isso para AllowOverride All
, meus arquivos .htaccess começam a entrar em vigor. É como se todas as outras AllowOverride All
diretivas nos meus arquivos de configuração estivessem sendo ignoradas!
O que da??
fonte
Verifique se há outro "AllowOverride None" apresentado em 'httpd.conf' acima da declaração virtualhosts. Provavelmente, você tem "AllowOverride None" no docroot.
fonte
dev.
. No entanto, o servidor de produção funciona bem, os arquivos .htaccess se comportam exatamente como o esperado e o servidor de desenvolvimento simplesmente ignora completamente o arquivo .htaccess.Três palpites:
Existe realmente um espaço após a vírgula na linha
order deny, allow
em.htaccess
? O Apache não gosta disso. Para mim, na F13, eu ganhei 500.Você tem uma
AccessFileName
diretiva em algum lugar?Se você estiver usando o selinux, possui o contexto correto para o arquivo (
ls -lZ
)?fonte
AccessFileName
, vou dar uma olhada, mas como disse no meu comentário sobre a resposta de Denis, a configuração do apache para esses dois servidores é efetivamente idêntica.AccessFileName .htaccess
Eu tinha isso em um servidor novo, e finalmente percebi que a reescrita de mod não estava ativada por padrão.
fonte