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