Por que tudo depois de RewriteEngine On foi ignorado?

1

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:

  • A linha 'LoadModule rewrite_module' no httpd.conf não é comentada com um #
  • Eu tenho 'Opções Indexes FollowSymLinks Includes' no lugar no meu httpd.conf para o meu diretório html
  • E eu tenho 'AllowOverride All' no lugar ao lado da linha Opções também.
  • O arquivo .htaccess que tenho no diretório raiz do meu site está sendo acessado. Colocar um disparate na primeira linha me causa um erro interno do servidor, removê-lo e levá-lo embora
  • Colocando 'RewriteEngine Cheese' como a primeira linha me pega uma linha no meu error.log que diz 'RewriteEngine deve estar On ou Off', então definitivamente parece estar pronto para fazer alguma reescrita ...

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?

    
por Z M 11.03.2015 / 23:31

2 respostas

0

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.

    
por 12.03.2015 / 18:57
0

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.

    
por 13.03.2015 / 10:20