Запрос до бекенда не доходит. Нужно как раз сделать чтобы в определенном
локейшене запрос шел на php скрипт в случае 404 ошибки, а не на статичный
файл.

12 октября 2016 г., 5:00 пользователь K K <n...@mail.ru> написал:

> Првет
>
> Скоре всего тебе надо возвращать от бекэнда 404ую с 200ым ответом, а уже
> nginx'ом переписывать код ответа на 404
>
> --
> k k
> вторник, 11 октября 2016г., 21:43 +05:00 от Sargas sarga...@gmail.com:
>
> Возможно у кого-то есть какие-то мысли как это реализовать?
> Буду благодарен.
>
> 6 октября 2016 г., 17:45 пользователь Sargas <sarga...@gmail.com
> <https://e.mail.ru/compose/?mailto=mailto%3asarga...@gmail.com>> написал:
>
> Здравствуйте.
>
> Подскажите, пожалуйста, как решить следующую задачу.
> Нужно для админки /admin сделать обработку 404 ошибок скриптом app.php, а
> для остальных локейшенов чтобы отдавался файл 404.html
>
> server {
>     listen 127.0.0.1:80;
>     server_name example.com;
>
>     error_log /vhosts/example.com/logs/nginx.error.log;
>     access_log /vhosts/example.com/logs/nginx.main.log main;
>
>     location ~ /\. { deny all; }
>     index app.php;
>     root /vhosts/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%2...@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
>
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить