Re: bug: try files не перенаправляет в location @ и генерит 404
лог я скопировал в письме: #[error] 4288#0: *1 open() /var/www/project_name/src/badurl failed (2: No such file or directory), client: 192.168.234.1, server: bug, request: GET /project_name/src/badurl HTTP/1.1, host: bug не найденный файл /var/www/project_name/src/badurl то что он не найден это не удивляет, т. к. это ЧПУ. удивляет то что try_files $uri @notfound; это событие не перенаправляет на блок location @notfound и удивляет, то что эта конструкция работает если убрать блок if если поможете разобраться буду очень признателен, возможно я не заметил то что заметили Вы спасибо! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,256034,256044#msg-256044 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: bug: try files не перенаправляет в location @ и генерит 404
спасибо за ответ! в моем конфиге if переопределяет папку с исходниками по-умолчанию ($prjct_src). возможно я сделал неудачный пример написав http://dev_hos/project_name/src/badurl вместо http://dev_hos/project_name/src_zero/badurl возникшую проблему - я у себя решил, написав два отдельных регулярных выражения я всегда думал что одно регулярное выражение лучше двух, поэтому и использовал if но раз это не баг, а if плохая штука, тогда okay! спасибо за консультацию! Posted at Nginx Forum: http://forum.nginx.org/read.php?21,256034,256048#msg-256048 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: bug: try files не перенаправляет в location @ и генерит 404
2015-01-11 19:36 GMT+03:00 Valeriy nginx-fo...@nginx.us: удивляет то что try_files $uri @notfound; это событие не перенаправляет на блок location @notfound и удивляет, то что эта конструкция работает если убрать блок if Я принялся глядеть в ваш конфиг внимательнее, и первое, что я обнаружил - if там не делает ничего полезного. можно его убрать, а set $prjct_src $tmp_src; оставить, и будет, по-видимому, ровно то, что вы хотите получить. это раз. и два - почитайте http://wiki.nginx.org/IfIsEvil. ситуация try_files wont work due to if там документирована (эта беда от того, что if создает скрытый location, внутри которого дальше и происходит обработка) ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
bug: try files не перенаправляет в location @ и генерит 404
Здравствуйте! я пытался организовать рерайты на своем девелопмент сервере и столкнулся со странным багом. есть папка с проектами ($document_root), в ней находятся папки которые соответствуют названиям проектов ($prjct_folder), и в папке проекта есть папка с исходниками ($prjct_src - ее название по умолчанию src, но могут быть другие src2, src_old, ...). стояла задача при обращении по адресу (ЧПУ) http://dev_hos/project_name/src/badurl и адресу http://dev_hos/project_name/badurl перенаправлять оба логически одинаковых URL на исполнение скрипту: /var/www/project_name/src/index.php для реализации я создал конфиг похожий на этот (максимально упрощенный вариант) server { listen 80; server_name bug; root/var/www; set $prjct_folder ''; set $prjct_src 'src'; set $prjct_uri ''; location / { add_header Content-Type'text/html; charset=UTF-8'; return 200 other; } location ~* ^/([^/]+)/?(src[^/]*)?/?(.*) { set $prjct_folder $1; set $tmp_src$2; set $prjct_uri $3; if ($tmp_src) { set $prjct_src $tmp_src; } try_files $uri@notfound; # add_header Content-Type'text/html; charset=UTF-8'; # return 200 $document_root/$prjct_folder/$prjct_src/$prjct_uri; } location @notfound { add_header Content-Type'text/html; charset=UTF-8'; return 200 $document_root/$prjct_folder/$prjct_src/$prjct_uri; } } логика работы следующая: при обращении к серверу, ЧПУ попадает на обработку в блок с регулярным выражением, регулярное выражение извлекает из него название папки проекта и название папки с исходниками (если такова в адресе есть) и перенаправляет в блок @notfound который вызывает нужный скрипт (логику вызова скрипта я убрал, оставил только инструкции для дебага) баг заключается в том, что при обращении по адресу вида (содержит src) http://dev_hos/project_name/src/badurl nginx выдает 404 проходя мимо блоков @notfound и / при заходе на адрес без src http://dev_hos/project_name/badurl nginx корректно переходит в блок @notfound в лог nginx попадает следующая ошибка: #[error] 4288#0: *1 open() /var/www/project_name/src/badurl failed (2: No such file or directory), client: 192.168.234.1, server: bug, request: GET /project_name/src/badurl HTTP/1.1, host: bug Posted at Nginx Forum: http://forum.nginx.org/read.php?21,256033,256033#msg-256033 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: bug: try files не перенаправляет в location @ и генерит 404
2015-01-11 3:25 GMT+03:00 Valeriy nginx-fo...@nginx.us: баг заключается в том, что при обращении по адресу вида (содержит src) http://dev_hos/project_name/src/badurl nginx выдает 404 проходя мимо блоков @notfound и / вы бы глянули в логи, что ли. там написано, какой именно файл не найден. будете удивлены... ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru