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

Sargas sargaskn на gmail.com
Чт Окт 13 13:18:54 UTC 2016


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

Почему?

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

Все запросы отправляем на app.php, при попытке открыть php скрипт который
не прописан как локейшен в конфиге nginx - отдаем 404 ошибку. Сделано на
случай если зальют вебшелл и попытаются его выполнить. К сожалению
приложение переделывать никто не будет, а залить файл можно много куда.


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

попробую, благодарю.


13 октября 2016 г., 13:34 пользователь Panfilov Konstantin <
error500 на error500.ru> написал:

> try_files не стоит использовать
> вообще
>
> ну и  какойто странный конфиг у вас
>
> в именованом локейшене укажите не $fastcgi_script_name который к этому
> моменту непонятно какой а конкретно app.php
>
> ну и дебаг лог прекрасно расказывает что происходит в момент запроса и что
> куда редиректит и почему недоходит до бэка
>
>
> 12.10.2016 16:04, Sargas пишет:
>
> Запрос до бекенда не доходит. Нужно как раз сделать чтобы в определенном
> локейшене запрос шел на php скрипт в случае 404 ошибки, а не на статичный
> файл.
>
> 12 октября 2016 г., 5:00 пользователь K K <nnex на mail.ru> написал:
>
>> Првет
>>
>> Скоре всего тебе надо возвращать от бекэнда 404ую с 200ым ответом, а уже
>> nginx'ом переписывать код ответа на 404
>>
>> --
>> k k
>> вторник, 11 октября 2016г., 21:43 +05:00 от Sargas 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;
>>     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%2dru@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 listnginx-ru на nginx.orghttp://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/bd8559a4/attachment.html>


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