Re[2]: О заголовке content-type
А... голова дырявая. Забыл про types. Спасибо. >Понедельник, 19 февраля 2018, 19:26 +03:00 от Maxim Dounin >: > >Hello! > >On Mon, Feb 19, 2018 at 06:18:52PM +0300, CoDDoC wrote: > >> Доброе время суток! >> >> Есть такой локейшен: >> location ~ "^/img/" { internal; } >> >> Естественно, прямой запрос 'GET /img/file.jpg' получает 404 >> Все хорошо, но нужно вместо стандартной nginx страницы отдать кастомную. >> Можно решать разными способами, я решил попробовать через 'return 404 >> ' (минимум внутренних реврайтов/редиректов). >> >> Получилось так (упрощенно): >> >> error_page 404 = @err404; >> location @err404 { >> return 404 ' WTF ? >>'; >> add_header "Content-Type" "text/html; charset=UTF-8" always; >> } >> >> Оно работает, одно смущает: дублирование заголовка Content-Type: сперва >> 'image/jpeg', затем уже 'text/html; charset=UTF-8' >> Браузер-то, ясное дело, возьмет по итогу второй заголовок. Но, может, есть >> какой-либо цивилизованный способ оставить один Content-Type без >> прикручивания костыля типа headers-more ? > >Правильно - не пытаться прибить левый Content-Type гвоздями с >помощью add_header, а задать его штатными средствами. Например >так: > >error_page 404 = /error404.html; >location = /error404.html { >charset utf-8; >return 404 ' ...'; >} > >Или, если по каким-то причинам очень хочется именно именованный >location, то так: > >error_page 404 = @err404; >location @err404 { >types {} >default_type text/html; >charset utf-8; >return 404 ' ...'; >} > >-- >Maxim Dounin >http://mdounin.ru/ >___ >nginx-ru mailing list >nginx-ru@nginx.org >http://mailman.nginx.org/mailman/listinfo/nginx-ru -- ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: О заголовке content-type
Hello! On Mon, Feb 19, 2018 at 06:18:52PM +0300, CoDDoC wrote: > Доброе время суток! > > Есть такой локейшен: > location ~ "^/img/" { internal; } > > Естественно, прямой запрос 'GET /img/file.jpg' получает 404 > Все хорошо, но нужно вместо стандартной nginx страницы отдать кастомную. > Можно решать разными способами, я решил попробовать через 'return 404 ' > (минимум внутренних реврайтов/редиректов). > > Получилось так (упрощенно): > > error_page 404 = @err404; > location @err404 { > return 404 ' WTF ? > '; > add_header "Content-Type" "text/html; charset=UTF-8" always; > } > > Оно работает, одно смущает: дублирование заголовка Content-Type: сперва > 'image/jpeg', затем уже 'text/html; charset=UTF-8' > Браузер-то, ясное дело, возьмет по итогу второй заголовок. Но, может, есть > какой-либо цивилизованный способ оставить один Content-Type без прикручивания > костыля типа headers-more ? Правильно - не пытаться прибить левый Content-Type гвоздями с помощью add_header, а задать его штатными средствами. Например так: error_page 404 = /error404.html; location = /error404.html { charset utf-8; return 404 ' ...'; } Или, если по каким-то причинам очень хочется именно именованный location, то так: error_page 404 = @err404; location @err404 { types {} default_type text/html; charset utf-8; return 404 ' ...'; } -- Maxim Dounin http://mdounin.ru/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
О заголовке content-type
Доброе время суток! Есть такой локейшен: location ~ "^/img/" { internal; } Естественно, прямой запрос 'GET /img/file.jpg' получает 404 Все хорошо, но нужно вместо стандартной nginx страницы отдать кастомную. Можно решать разными способами, я решил попробовать через 'return 404 ' (минимум внутренних реврайтов/редиректов). Получилось так (упрощенно): error_page 404 = @err404; location @err404 { return 404 ' WTF ? '; add_header "Content-Type" "text/html; charset=UTF-8" always; } Оно работает, одно смущает: дублирование заголовка Content-Type: сперва 'image/jpeg', затем уже 'text/html; charset=UTF-8' Браузер-то, ясное дело, возьмет по итогу второй заголовок. Но, может, есть какой-либо цивилизованный способ оставить один Content-Type без прикручивания костыля типа headers-more ? proxy_hide_header не годится - нет проксирования. Отправлять все "не-пойми-какие" запросы на бэкенд - не вижу в этом особого смысла. Спасибо. --___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru