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?
Tags apache-2.2 php5