Enviei meus arquivos .htaccess para os servidores de produção, mas eles não funcionam. O próximo passo seria reiniciar ou devo verificar outra coisa.
Enviei meus arquivos .htaccess para os servidores de produção, mas eles não funcionam. O próximo passo seria reiniciar ou devo verificar outra coisa.
Respostas:
Não é necessário reiniciar para alterações em .htaccess. Outra coisa está errada.
Certifique-se de que seu .htaccess inclui a declaração
RewriteEngine em
que é necessário mesmo se também estiver presente no httpd.conf. Verifique também se .htaccess pode ser lido pelo processo httpd.
Verifique o error_log - ele informará sobre quaisquer erros no .htaccess se estiver sendo usado. Colocar um erro de sintaxe intencional em .htaccess é uma boa verificação para ter certeza de que o arquivo está sendo usado - você deve obter um erro 500 em qualquer página no mesmo diretório.
Por último, você pode habilitar um registro de reescrita usando comandos como os seguintes em seu httpd.conf:
RewriteLog "logs / rewritelog"
RewriteLogLevel 7
O arquivo de log gerado assim lhe dará os detalhes sangrentos de quais regras de reescrita coincidem e como elas foram tratadas.
Não :
O Apache permite o gerenciamento descentralizado da configuração por meio de arquivos especiais colocados dentro da árvore da web. Os arquivos especiais são normalmente chamados
.htaccess
, mas qualquer nome pode ser especificado na diretiva AccessFileName ... Como os arquivos .htaccess são lidos em cada solicitação, as alterações feitas nesses arquivos têm efeito imediato ...
Da documentação do apache: Mais comumente, o problema é que AllowOverride não está definido de forma que suas diretivas de configuração sejam honradas. Certifique-se de que você não tenha AllowOverride None em vigor para o escopo do arquivo em questão. Um bom teste para isso é colocar lixo em seu arquivo .htaccess e recarregar. Se um erro de servidor não for gerado, é quase certo que você tenha AllowOverride None em vigor.
Eu tenho o mesmo problema e parece que a postagem do PiedPiper sobre AllowOverride foi muito útil. Verifique seu arquivo httpd.conf para "AllowOverride" e certifique-se de que esteja definido como All.
No caso de .htaccess, o reinício não é necessário se não estiver funcionando, os motivos prováveis incluem.
AllowOverride Não pode ser definido qual usuário pode definir dentro de httpd.conf ou pode ter que entrar em contato com o administrador do servidor.
Verifique o nome do arquivo .htaccess. Deve ser .htaccess e não htaccess.txt. Veja aqui o guia de como criar um.
Tente usar Options -Indexes
ou deny all
tipo de directiva simples para ver se ele está funcionando ou não.
limpe o cache do navegador todas as vezes se houver regra para redirecionamentos ou semelhante, se o redirecionamento anterior estiver armazenado em cache, parece que as coisas não estão funcionando.
LogLevel alert rewrite:trace7
. Depois de reiniciar o apache , você deve ver os rastros no error.log Espero que isso ajude. http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging