Apache рассматривает файлы с ".var[.]" В своих именах как карты типов

Поэтому сегодня на работе я столкнулся со странной проблемой. Приложение, которое я писал, имело файл JavaScript с именем form.sales.var.jsнаходится в том же каталоге, что и другие файлы JS. Однако когда браузер попытался загрузить файл JS, сервер вернул 500 Internal Server Error стр. Журнал Apache показал запись:

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

- сопровождается оставшейся частью пути к файлу и содержимым файла.

Я провел некоторое исследование в Google относительно этой проблемы и обнаружил, что это, вероятно, вызвано именем файла, содержащим .var., заставляя Apache рассматривать его как карту типов. Поскольку это не так, возникает синтаксическая ошибка.

Мои вопросы сейчас:

  1. Почему .js файл рассматривается как карта типов, когда в документации говорится, что карты типов *.var файлы? Это просто, что мой веб-сервер неправильно настроен, или другие могут проверить, чтобы увидеть, выдают ли их веб-серверы те же ошибки с файлами с именем something.var.something?
  2. Почему нет документации по этой проблеме, и почему о ней так редко сообщают, даже если такое поведение, по-видимому, существовало со времен Apache 1.3? Кажется, это будет более распространенная проблема.
  3. Обычно используются карты типов? Есть ли какие-либо предсказуемые проблемы с их отключением в Apache?
  4. Каков наилучший способ решения этой проблемы (кроме переименования файла и не использования имен файлов, которые содержат .var.)?

1 ответ

Решение

Это часть переговоров по содержанию Apache httpd. Просто удалите обработчик для type-map для <Directory>или же <Location> из ваших файлов JavaScript или удалить MultiViews для этих каталогов.

Другие вопросы по тегам