Назад | Перейти на главную страницу

Заставить Apache распознавать файлы типа MIME без расширения

У меня есть старые HTML-файлы, созданные кем-то еще. Многие из них по какой-то причине не имеют расширения .html. Я не хочу менять их, если это возможно, но по какой-то причине Apache не может использовать какую-либо магию MIME для определения их типа файла. у меня есть mime_magic мод включен, а также следующие в места раздел:

    MimeMagicFile /etc/magic

Следует отметить, что на этой машине я использую Debian Linux.

Я попробовал обходной путь DefaultType в моем основном файле conf, и у меня это не сработало. (Моя среда - это внутренняя, тщательно взломанная версия Apache, поэтому может быть директива FileInfo или что-то, отменяющее DefaultType, и я не могу ее найти. При стандартных установках это может работать ...)

Что DID работает: поскольку все файлы без расширений, с которыми я имею дело, находятся в одном известном каталоге, я добавил блок Location и использовал ForceType:

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

Вы не можете использовать ForceType в каталоге, который должен содержать файлы более одного типа.

Предположим, что все файлы, не содержащие точки, являются PHP:

      <FilesMatch "^[^\.]+$">
              ForceType application/x-httpd-php
      </FilesMatch>

Простым обходным решением, возможно, не совсем решением, было бы изменение DefaultType следующим образом:

DefaultType текст / html

Это гарантирует, что каждый нераспознанный файл будет рассматриваться как html.

Повторяю, это не верное решение, но оно простое и может иметь смысл, если ваш сервер обслуживает в основном HTML-содержимое.

Путь к волшебному файлу /usr/share/file/magic в Debian. Измените оператор конфигурации на

MimeMagicFile /usr/share/file/magic

Если вы откроете /etc/magic в текстовом редакторе вы можете увидеть комментарий, объясняющий, что file(1) следует использовать этот файл для своего местный только магические определения.

Мне кажется, вы используете СИСТЕМА волшебный файл, если вы хотите использовать MIME magic file - как следует из названия директивы конфигурации Apache "MimeMagicFile". Попробуй это:

MimeMagicFile /usr/share/mime/magic

Конечно, убедитесь, что это правильный путь для вашей системы - у меня нет системы Debian для тестирования, но я ожидаю, что она будет там. Пытаться locate mime/magic если вы не можете найти его в указанном выше месте.