Re: Кастомная 404 для определенных локейшенов.

Panfilov Konstantin error500 на error500.ru
Чт Окт 13 10:34:19 UTC 2016


try_files не стоит использовать
вообще

ну и  какойто странный конфиг у вас

в именованом локейшене укажите не $fastcgi_script_name который к этому 
моменту непонятно какой а конкретно app.php

ну и дебаг лог прекрасно расказывает что происходит в момент запроса и 
что куда редиректит и почему недоходит до бэка


12.10.2016 16:04, Sargas пишет:
> Запрос до бекенда не доходит. Нужно как раз сделать чтобы в 
> определенном локейшене запрос шел на php скрипт в случае 404 ошибки, а 
> не на статичный файл.
>
> 12 октября 2016 г., 5:00 пользователь K K <nnex на mail.ru 
> <mailto:nnex на mail.ru>> написал:
>
>     Првет
>
>     Скоре всего тебе надо возвращать от бекэнда 404ую с 200ым ответом,
>     а уже nginx'ом переписывать код ответа на 404
>
>     --
>     k k
>
>     вторник, 11 октября 2016г., 21:43 +05:00 от Sargas
>     sargaskn на gmail.com <mailto:sargaskn на gmail.com>:
>
>         Возможно у кого-то есть какие-то мысли как это реализовать?
>         Буду благодарен.
>
>         6 октября 2016 г., 17:45 пользователь Sargas
>         <sargaskn на gmail.com
>         <https://e.mail.ru/compose/?mailto=mailto%3asargaskn@gmail.com>>
>         написал:
>
>             Здравствуйте.
>
>             Подскажите, пожалуйста, как решить следующую задачу.
>             Нужно для админки /admin сделать обработку 404 ошибок
>             скриптом app.php, а для остальных локейшенов чтобы
>             отдавался файл 404.html
>
>             server {
>                 listen 127.0.0.1:80 <http://127.0.0.1:80>;
>                 server_name example.com <http://example.com>;
>
>                 error_log /vhosts/example.com/logs/nginx.error.log
>             <http://example.com/logs/nginx.error.log>;
>                 access_log /vhosts/example.com/logs/nginx.main.log
>             <http://example.com/logs/nginx.main.log> main;
>
>                 location ~ /\. { deny all; }
>                 index app.php;
>                 root /vhosts/example.com/www <http://example.com/www>;
>                 error_page 404 /404.html;
>
>
>                 location / {
>                     try_files $uri /app.php$is_args$args;
>                 }
>
>
>                 location ~ ^/app\.php {
>                     include fastcgi_params;
>                     fastcgi_param DOCUMENT_ROOT $realpath_root;
>                     fastcgi_param SCRIPT_FILENAME
>             $realpath_root$fastcgi_script_name;
>                     fastcgi_pass phpfpm;
>                     fastcgi_index app.php;
>                     fastcgi_connect_timeout 1;
>                     fastcgi_intercept_errors on;
>                     internal;
>                 }
>
>
>                 location ~ \.php$ {
>                     return 404;
>                 }
>
>
>                 location /admin {
>                     include conf.d/adminips.conf;
>                     try_files $uri /app.php$is_args$args;
>                 }
>
>
>                 location ~*
>             ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|bin|rar|bz2|woff|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|js|html|htm|flv)$
>             {
>                     expires max;
>                 }
>
>             }
>
>
>             Пробовал делать именованный локейшен и отправлять в него
>             404, но все равно отдается 404.html
>                 location /admin {
>                     include conf.d/adminips.conf;
>                     try_files $uri /app.php$is_args$args;
>                     error_page 404 = @err404;
>                 }
>
>                 location @err404 {
>                     include fastcgi_params;
>                     fastcgi_param DOCUMENT_ROOT $realpath_root;
>                     fastcgi_param SCRIPT_FILENAME
>             $realpath_root$fastcgi_script_name;
>                     fastcgi_pass phpfpm;
>                     fastcgi_index app.php;
>                     fastcgi_connect_timeout 1;
>                     fastcgi_intercept_errors on;
>                 }
>
>
>         _______________________________________________
>         nginx-ru mailing list
>         nginx-ru на nginx.org
>         <https://e.mail.ru/compose?To=nginx%2dru@nginx.org>
>         http://mailman.nginx.org/mailman/listinfo/nginx-ru
>         <http://mailman.nginx.org/mailman/listinfo/nginx-ru>
>
>
>     _______________________________________________
>     nginx-ru mailing list
>     nginx-ru на nginx.org <mailto:nginx-ru на nginx.org>
>     http://mailman.nginx.org/mailman/listinfo/nginx-ru
>     <http://mailman.nginx.org/mailman/listinfo/nginx-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/20161013/6b245221/attachment.html>


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