Fazendo o Apache reconhecer o tipo MIME de arquivos sem extensão

5

Eu tenho alguns arquivos HTML antigos que foram criados em outro lugar por outra pessoa. Muitos deles não têm, por algum motivo, a extensão .html. Eu não quero ter que mudá-los, se possível, mas por algum motivo, o Apache não consegue fazer qualquer mágica MIME para descobrir o tipo de arquivo. Eu tenho o mod mime_magic ativado, junto com o seguinte na seção sites :

    MimeMagicFile /etc/magic

Devo observar que estou usando o Debian Linux nesta máquina.

    
por supercheetah 18.08.2009 / 06:46

5 respostas

6

Eu tentei a solução DefaultType no meu arquivo conf principal e não funcionou para mim. (Meu ambiente é uma versão interna e completamente hackeada do Apache, então pode haver uma diretiva FileInfo ou algo que substitua o DefaultType e não consigo encontrá-lo. Em instalações padrão pode funcionar ...)

O que o DID funcionava: como todos os arquivos sem extensão com os quais estou lidando estão em um diretório conhecido, adicionei um bloco Location e usei o ForceType:

<Location "/directoryname">
ForceType text/plain
</Location>

Você não pode usar o ForceType em um diretório que deve conter mais de um tipo de arquivo.

    
por 16.09.2009 / 00:05
5

Suponha que todos os arquivos que não contêm um período sejam PHP:

      <FilesMatch "^[^\.]+$">
              ForceType application/x-httpd-php
      </FilesMatch>
    
por 26.11.2009 / 06:52
2

Um warkaround simples, talvez não seja uma solução, seria alterar o DefaultType da seguinte forma:

DefaultType text/html

Isso garante que todos os arquivos não reconhecidos sejam tratados como html.

Esta não é uma solução verdadeira, repito, mas é simples e pode ter sentido se o seu servidor serve principalmente conteúdos em html

    
por 18.08.2009 / 09:46
1

O caminho do arquivo mágico é /usr/share/file/magic no Debian. Altere a declaração de configuração para

MimeMagicFile /usr/share/file/magic

Se você abrir /etc/magic com um editor de texto, poderá ver o comentário explicando que file(1) deve usar esse arquivo somente para suas definições mágicas locais .

    
por 18.08.2009 / 15:02
0

Parece-me que você está usando o arquivo mágico SYSTEM quando deseja usar o arquivo mágico MIME - como o nome da diretiva de configuração do Apache "MimeMagicFile "implica. Tente isto:

MimeMagicFile /usr/share/mime/magic

Claro, certifique-se de que é o caminho certo para o seu sistema - eu não tenho um sistema Debian para testar, mas eu esperaria que ele estivesse lá. Tente locate mime/magic se você não conseguir encontrá-lo no local acima.

    
por 03.09.2009 / 05:51