Apache tratando arquivos com “.var [.]” em seus nomes como tipo-mapas

3

Então hoje no trabalho eu me deparei com um problema estranho. Um aplicativo que eu estava escrevendo tinha um arquivo JavaScript chamado form.sales.var.js , colocado no mesmo diretório que outros arquivos JS. No entanto, quando o navegador tentou carregar o arquivo JS, o servidor retornou uma página 500 Internal Server Error . O log do Apache mostrou a entrada:

Syntax error in type map, no ':' in /var/www/...

- seguido pelo restante do caminho do arquivo e pelo conteúdo do arquivo.

Eu fiz uma pesquisa no Google sobre o problema e achei que isso provavelmente foi causado pelo nome do arquivo contendo .var. , fazendo com que o Apache o tratasse como um tipo-map . Como não foi, ocorre um erro de sintaxe.

Minhas perguntas agora são:

  1. Por que um arquivo .js está sendo tratado como um mapa de tipos quando a documentação diz que os mapas de tipo são *.var files? É apenas que o meu servidor web está mal configurado, ou outros podem testar para ver se seus servidores da web produzem os mesmos erros com arquivos chamados something.var.something ?
  2. Por que não há documentação desse problema e por que ele é tão raramente relatado, embora esse comportamento pareça existir desde o Apache 1.3? Parece que seria um problema mais comum.
  3. Os mapas de tipos são normalmente usados? Existe algum problema previsível em desativá-los no Apache?
  4. Qual é a melhor maneira de resolver esse problema (além de renomear o arquivo e não usar nomes de arquivos que contenham .var. )?
por Lèse majesté 10.07.2010 / 02:55

1 resposta

3

Isso faz parte da Negociação de conteúdo do Apache httpd. Basta remover o manipulador de type-map para o <Directory> ou <Location> dos seus arquivos JavaScript ou remova MultiViews para esses diretórios.

    
por 10.07.2010 / 08:31