Os arquivos de configuração do Linux, incluindo os arquivos de configuração do Apache, exigem que a última linha esteja vazia. Tudo após a última nova linha será ignorado.
Então, estou tentando fazer o mod_rewrite funcionar no meu novo site. Eu usei mod_rewrite com sucesso há alguns anos, mas desta vez não um único comando depois que 'RewriteEngine On' funciona.
Estou obtendo exatamente o mesmo efeito no meu Apache 2.2 local como faço no servidor do meu host, portanto, não é que o servidor não esteja configurado para o mod_rewrite. Minha máquina local roda o Windows, e o servidor remoto é o Linux, então eles são sistemas bastante independentes. Aqui está o que eu verifiquei até agora para o meu localhost:
MAS. Nada que eu digite depois de RewriteEngine On tem algum efeito! Eu posso escrever um absurdo e não receber nenhuma mensagem de erro. Eu coloquei muitos comandos lá como teste, mas mesmo esse arquivo .htaccess não faz nada:
RewriteEngine On
RewriteRule ^.*$ test.html [R]
Isso deve reescrever todas as páginas que eu vou para test.html, não é? E, no entanto, nada acontece - se eu for a hello.html, acabei de receber uma página da web dizendo que hello.html não foi encontrado.
Por favor, alguém pode oferecer uma sugestão sobre o que tentar em seguida?
Incrível. Depois de vários dias tentando fazer isso funcionar, o arquivo .htaccess exato que eu postei de repente começou a funcionar hoje, tanto localmente quanto no meu servidor remoto. O que eu fiz? Não faço ideia. Eu tentei adicionar uma última linha vazia, como a outra resposta aconselhou - e então funcionou. Mas agora eu me livrei da última linha vazia, ainda funciona. Então não tenho ideia do que aconteceu. Desculpe pelo resultado vago aqui. É um mistério para mim.
Nem é como se a reinicialização da minha máquina local fosse a solução, já que eu não reiniciei o servidor remoto, e meu arquivo .htaccess de repente começou a trabalhar lá também agora. É o único arquivo que eu enviei antes de testar novamente para ver se funciona.
Tags mod-rewrite apache-2.2