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

Директива DefaultType в apache 2.4

Мы только что перешли с Apache 2.0.53 на Apache 2.4. Все отлично работает с файлами html / js / css и т. Д.

Но у нас есть несколько конечных точек на наших серверах, которые возвращают простой текст. Например - конечная точка вернет -

RIL~Reliance Industries~1234~abcd

По умолчанию ответ для них не содержит «тип содержимого», но я ожидаю «текст / простой»

В Apache 2.0.53 мы использовали

DefaultType text/plain

Но в Apache 2.4 эта директива отключена. (Ссылка:http://httpd.apache.org/docs/2.4/mod/core.html#defaulttype)

У меня много запросов, и мне нужно универсальное решение, которое я могу применить к своему apache, чтобы, если не указан тип содержимого, он должен отправлять «текст / простой»

Любые предложения, пожалуйста.

Одно из решений - использовать ForceType text/plain установить Content-Type заголовок в text/plain. Это сделает все ответы возвращение text/plain, тем не мение.

Очень специфическая проблема использования ForceType это то, что ломается mod_mimeопределение расширения файла. Например, файлы, запрошенные с .css или .js расширения не будут иметь Content-Type установлен в text/css или application/javascript и вместо этого он будет установлен на text/plain: наверное не то, что ты хочешь.

Как отмечено в цепочка в списке рассылки apache, причина почему DefaultType был удален, потому что теперь они рекомендуют браузеру выполнить анализ, чтобы определить тип содержимого. Если вы обновляетесь с apache 2.2 до 2.4, вам следует попробовать просто использовать его, не добавляя его снова.

Нашел решение.

ForceType text/plain

Это сработало для меня ....

Это, вероятно, сломает что-то еще ... css rss pdf video и т. Д.

Обычно проблема возникает с «файлами» без расширения.

Это кажется мне самым простым способом справиться с этим

<FilesMatch "^[^.]+$">
    ForceType text/html
</FilesMatch>`