Comportamento estranho do virtual () do PHP quando a mod_negotiation do Apache entra em jogo

1

Primeiro: se agir separadamente, o virtual() do PHP e o mod_negotiation do Apache funcionarão bem. Mas eu tenho problemas quando virtual() se refere a um arquivo que precisa ser negociado (por exemplo, Multi-Lang). Mais facilmente explicado usando um exemplo simplificado:

Em /texts/ , coloco dois arquivos: example.html (Conteúdo: <P>This is English</P> ) e example.html.de ( <P>Dies ist Deutsch</P> ). Agora vamos pegar um exemplo de script PHP:

<HTML><HEAD><TITLE>Example</TITLE></HEAD><BODY>
<? virtual("/texts/example.html"); ?>
</BODY></HTML>

Isso funciona bem e a saída é a esperada:

<HTML><HEAD><TITLE>Example</TITLE></HEAD><BODY>
<P>This is English</P>
</BODY></HTML>

Mas agora eu mudo a chamada virtual() para virtual("/texts/example"); , com meu idioma preferido definido para alemão. Enquanto a negociação escolhe o alvo correto, a saída é confusa:

<P>Dies ist Deutsch</P>
<HTML><HEAD><TITLE>Example</TITLE></HEAD><BODY>
</BODY></HTML>

Novamente: a única coisa que mudou no código acima foi o parâmetro para a chamada virtual() . E esses arquivos estavam indo bem por cerca de 10 anos em minhas outras máquinas - apenas no meu novo, esse negócio maluco começou:

Versão do PHP: 5.3.10 (na máquina de trabalho: 5.2.4)
Apache2 versão: 2.2.22 (na máquina de trabalho: 2.2.8)

Alguma ideia do que poderia dar errado aqui?

    
por Izzy 13.11.2012 / 08:30

0 respostas