Я настроил сервер Nginx. Тем не менее, он отправляет неправильный тип контента.
Мне нужно заставить Nginx отправлять определенные “Content-Type: text/xml; charset=UTF-8“ .
Как настроить Nginx для переопределения типа контента для заданного местоположения URL?
Введение – MIME является аббревиатурой от многоцелевых расширений почты в Интернете (MIME).
Это стандарт, который указывает характер и формат документа, файла или ассортимента байтов.
Все веб-браузеры используют тип MIME, чтобы определить, как обрабатывать URL.
Следовательно, важно, чтобы Nginx отправлял правильный MIME-тип в заголовке Content-Type ответа.
Как увидеть заголовок Content-Type
Используйте следующую команду curl:
curl -I url curl -I curl -I https://www.cyberciti.biz/media/new/category/old/nginx.gif
Пример вывода
HTTP/2 200 date: Mon, 21 Jan 2019 12:07:22 GMT content-type: image/gif content-length: 377 cache-control: max-age=315360000 ... .
content-type: image/gif указывает, что изображение и подтип является изображением gif.
Как узнать тип MIME по умолчанию в Nginx
Найдите файл конфигурации с именем mime.types внутри каталога конфигурации nginx:
# find /etc/nginx -name mime.types
Используйте команду cat или команду vi для просмотра файла mime.types:
vi /etc/nginx/mime.types
Переопределить тип контента на веб-сервере Nginx
Скажем, когда я запрашиваю файл atom.xml, он:
content-type: text/xml
И я хочу, чтобы это было следующим образом:
Content-Type: content-type: text/html; charset=UTF-8
Я снова использовал команду curl:
curl -I https://www.cyberciti.biz/atom/atom.xml
Вывод:
content-type: text/xml
Чтобы исправить это, обновите файл mime.types:
# vi /etc/nginx/mime.types
И убедитесь, что существует следующий конфиг:
application/atom+xml atom;
Сохраните и закройте файл.
Перезагрузите / перезапустите сервис Nginx.
Например, пользователь GNU / Linux может запустить:
# systemctl reload nginx
Nginx переопределяет тип контента для URL
Также возможно переопределить тип контента для данного шаблона URL.
Например, я отредактировал /etc/nginx/domains/cyberciti.biz/default.conf и добавил следующее в контексте сервера:
### force utf-8 and content type, good bots for SEO ## location = /atom/atom.xml { ## override content-type ## types { } default_type "application/atom+xml; charset=utf-8"; ## override header (more like send custom header using nginx) # add_header x-robots-tag "noindex, follow"; } |
Сохраните и закройте файл. Перезапустите или перезагрузите сервер nginx:
# service nginx reload
Протестируем это:
curl -I https://www.cyberciti.biz/atom/atom.xml