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