Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: root, alias и named location
Hello!
On Fri, Feb 18, 2011 at 11:45:30AM +0000, Max Ivanov wrote:
> Добрый день!
> Прошу помощи, т.к. оказался в ступоре по элементарному вопросу :)
>
> Хочется при запросе /zzz/abc.php открывать файл /data/sites/misc/abc.php
> Хочется задавать обработку /zzz/ в подключаемом файле, чтоб его можно
> было использовать на многих сайтах, для этого хочется использовать
> именованный location.
>
> Сейчас делаю так:
>
>
> location @misc_backend {
> root /data/sites/misc/;
> include /etc/nginx/settings/fastcgi.conf;
> fastcgi_pass php_auth;
> }
>
> location /zzz/ {
> alias /data/sites/misc/;
>
> location ~ \.php$ {
> error_page 418 = @misc_backend;
> return 418;
> }
> }
>
>
> Но все равно $uri в @misc_backend остается /zzz/abc.php (а значит
> обрабатываться пытается /data/sites/misc/ , хотя вроде как директива
> alias должна была убрать /zzz/ из $uri как я понял из ее описания.
Всё, что написано в location /zzz/, действует ровно до того
момента, как вы из этого location ушли, передав обработку в
location @misc_backend. Дальше начинает действовать то, что
написано в location @misc_backend: а именно "root
/data/sites/misc/" и никаких alias'ов.
Кроме того, со стандартным fastcgi.conf alias для location'ов,
заданных регулярным выражением, будет жить будет плохо, негодно.
Как-то так должно работать:
location /zzz/ {
alias /data/sites/misc/;
location ~ \.php$ {
fastcgi_pass php_auth;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
}
Maxim Dounin
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|