Я хочу следующее. http://some.site/person1/some/path должен получить доступ к /home/person1/some/path
(и http://some.site/person1 доступ /home/person1/index.html
) и http://some.site/person2/some/path должен получить доступ к /home/person2/some/path
(и получает доступ к http://some.site/person2/home/person2/index.html
). Там будет много personX
es. Важно использовать регулярное выражение, чтобы сказать nginx, где все можно найти.nginx: корень выбран по пути
Я попытался придумать набор правил расположения, root и переписать, которые будут работать. Самое близкое, что я пришел, было для моего sites-available/website
.
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /some/default/root;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
location/{
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri.html $uri $uri/ =404;
}
location /person1 {
root /home/person1;
rewrite ^/person1(.*)$ $1 break;
}
}
Это делает то, что я хочу со всеми путями для них вида http://some.site/person1 кроме. В этом случае nginx не имеет доступа к /home/person1/index.html
, как я хочу. Вместо этого регулярное выражение возвращает пустую строку, которой nginx не нравится (я вижу жалобы в nginx/error.log).