nginx:根据路径选择的根

时间:2017-02-03 05:46:25

标签: regex nginx url-rewriting root directive

我想要以下内容。 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次访问{{1} }})。会有很多/home/person2/index.html个。使用正则表达式告诉nginx在哪里找到所有内容非常重要。

我尝试了一组可行的位置,根和重写指令。我最接近的是我的personX

sites-available/website

除了http://some.site/person1形式的路径之外,这对我的所有路径都是如此。在这种情况下,nginx不会像我想要的那样访问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; } } 。相反,正则表达式返回一个空字符串,nginx不喜欢(我在nginx / error.log中看到投诉)。

1 个答案:

答案 0 :(得分:0)

当您在/ home中有共同的启动根目录时,可以尝试使用:

{{1}}