Re: Подпапки, alias и try_files
    Mamontov Roman 
    mr.xanto на gmail.com
       
    Чт Янв 21 16:34:40 UTC 2016
    
    
  
Добрый день.
On Wed, Jan 20, 2016, Maxim Dounin wrote:
> Потому что SCRIPT_FILENAME у вас установлен в
> $document_root$fastcgi_script_name, где
>
> - $document_root = /usr/local/www/vexim/index.php, т.к.
>  используется директива alias с полным заданием пути,
>
> - $fastcgi_script_name = /owa/index.php, т.к. это переменная
>  задаёт имя скрипта в пространстве адресов, а не файлов, и
>  соответственно не знает про alias.
>
> Чтобы работало, нужно задать в SCRIPT_FILENAME значение, которое
> бы показывало на правильное имя файла, e.g.:
>
>    fastcgi_param SCRIPT_FILENAME $request_filename;
>
> Отдельно отмечу, что задавать alias во внутреннем location'е в
> nginx 1.9.4+ не надо, он корректно отнаследуется из внешнего
> location'а.
> Впрочем, лучше alias из внутреннего location'а убрать, как
> предложено выше, тогда "try_files $uri =404" будет работать
> штатно.
В общем вот такая конфигурация работает:
        location /owa {
                alias /usr/local/www/vexim/;
                location ~ ^/owa(.+\.php)$ {
                        try_files $uri =404;
                        fastcgi_pass php-fpm;
                        include fastcgi_params;
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME $request_filename;
                }
        }
Спасибо за помощь!
    
    
Подробная информация о списке рассылки nginx-ru