Re[2]: О заголовке content-type

CoDDoC coddoc на mail.ru
Вт Фев 20 07:23:39 UTC 2018


Ааааа... голова дырявая. Забыл про types.
Спасибо.

>Понедельник, 19 февраля 2018, 19:26 +03:00 от Maxim Dounin <mdounin на mdounin.ru>:
>
>Hello!
>
>On Mon, Feb 19, 2018 at 06:18:52PM +0300, CoDDoC wrote:
>
>> Доброе время суток!
>> 
>> Есть такой локейшен:
>> location ~ "^/img/" { internal; }
>> 
>> Естественно, прямой запрос 'GET /img/file.jpg' получает 404
>> Все хорошо, но нужно вместо стандартной nginx страницы отдать кастомную.
>> Можно решать разными способами, я решил попробовать через 'return 404 <text>' (минимум внутренних реврайтов/редиректов).
>> 
>> Получилось так (упрощенно):
>> 
>> error_page 404 = @err404;
>> location @err404 {
>>       return 404 '<!DOCTYPE html> <html> <body> <h1> <center> WTF ? </center> </h1> </body> </html>';
>>       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 '<!DOCTYPE html> ...';
>    }
>
>Или, если по каким-то причинам очень хочется именно именованный 
>location, то так:
>
>    error_page 404 = @err404;
>    location @err404 {
>        types {}
>        default_type text/html;
>        charset utf-8;
>        return 404 '<!DOCTYPE html> ...';
>    }
>
>-- 
>Maxim Dounin
>http://mdounin.ru/
>_______________________________________________
>nginx-ru mailing list
>nginx-ru на nginx.org
>http://mailman.nginx.org/mailman/listinfo/nginx-ru


--
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20180220/f04d0c1a/attachment.html>


Подробная информация о списке рассылки nginx-ru