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

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

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

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


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

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

    Првет

    Скоре всего тебе надо возвращать от бекэнда 404ую с 200ым ответом,
    а уже nginx'ом переписывать код ответа на 404

    --
    k k

    вторник, 11 октября 2016г., 21:43 +05:00 от Sargas
    sarga...@gmail.com <mailto: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 <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%2...@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

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить