O mod_rewrite do Apache mistura reescritas do programa de reescrita externa

1

Eu uso a seguinte configuração:

RewriteEngine On
RewriteMap url-rewrite prg:/usr/bin/url-rewrite
RewriteRule ^(.*)$ ${url-rewrite:%{HTTP_HOST}$1} [P]

Mas às vezes os URLs reescritos são confundidos:

127.0.0.1 - - [30/Jun/2011:15:12:37 +0300]   
[localhost...] [...] (5) map lookup OK:
map=url-rewrite key=localhost/1.gif ->
val=http://127.0.0.1:8080/path/2.gif

O script url-rewrite adiciona apenas o segmento do caminho, mas não altera o nome do arquivo. Eu esperava val = link . Isso faz com que o usuário realmente obtenha o arquivo de imagem errado.

Nota: Se você deseja obter um log de depuração detalhado como o acima (com implicações de desempenho) use:

RewriteLog /path/to/file.log
RewriteLogLevel 9
    
por Yonatan Broza 30.06.2011 / 15:54

1 resposta

2

Parece que o script de regravação de URL está errado, você deve postar este código de script.

Mas antes disso, verifique se você definiu a RewriteLock Directive, quando usar um prg: apache precisa de um bloqueio de sincronização para não misturar resultados.

    
por 30.06.2011 / 22:48