Pergunta

Eu tenho o seguinte em um arquivo .htaccess como um teste:

RewriteEngine on
RewriteRule ^(.*)$ /backend/$1

Isso funciona como esperado. Eu era capaz de obter o registo reescrita trabalhando com o seguinte na apache2.conf:

<IfModule mod_proxy.c>
    RewriteLog "/tmp/REWRITE.log"
    RewriteLogLevel 9
</IfModule>

O arquivo de log é criado e informações registros de depuração como esperado. No entanto, quando eu excluir o arquivo .htaccess, alterar a directiva apache2.conf como se segue, e reiniciar o apache para fazer o globalmente equivalente, ele não funciona.

<IfModule mod_proxy.c>
    RewriteLog "/tmp/REWRITE.log"
    RewriteLogLevel 9
    RewriteEngine on
    RewriteRule ^(.*)$ /backend/$1
</IfModule>

Eu estou usando Apache / 2.0.55 no Ubuntu.

Ajuda!

Foi útil?

Solução

Você já tentou isso?

    RewriteEngine on
    RewriteRule ^(.*)$ /backend/$1

<IfModule mod_proxy.c>
    RewriteLog "/tmp/REWRITE.log"
    RewriteLogLevel 9

</IfModule>

Porque esta maneira que eu era capaz de fazer reescrever, mas log não funcionavam trabalhou, portanto, uma questão em mod_proxy.c

Outras dicas

Você já considerou transformar RewriteEngine on antes quaisquer outras directivas reescrita?

São as suas directivas RewriteRule contido dentro de uma definição de servidor particular? Você tem servidores virtuais no trabalho?

A razão que eu peço é que você diz isso funciona em um arquivo .htaccess que é diretório específico; embora oficialmente a documentação diz que RewriteRule pode aplicar a configuração do servidor, hospedeiros virtuais, diretório, .htaccess.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top