nginx用户公共家没有〜

时间:2017-03-05 07:20:09

标签: nginx

如果我想将public_html的用户归为http://mysite/user1/,我很高兴 在~

之前没有user1

如果访问http://mysite/,则会转到/usr/share/nginx/html/index.html

我将config设置如下:

server {
    listen 80 default_Server;

    # Home directories
    location ~ ^/(.+?)(/.*)?$ {
      alias /home/$1/public_html$2;
    }
    location / {
      root /usr/share/nginx/html;
      index index.php index.html index.htm;
    }

当我访问http://mysite/user1/时,它可以正常运作。

但现在http://mysite/变为404。 我对正则表达式和规则搜索序列不太熟悉 如何让用户回家和root都工作?

1 个答案:

答案 0 :(得分:1)

URI /在内部映射到URI /index.html,它也与您的正则表达式匹配。假设您服务器上的唯一子目录是用户,您可以在正则表达式中强制使用第二个/

location ~ ^/(.+?)/(.*)?$ {
    alias /home/$1/public_html/$2;
}

或者,明确/index.html URI(通过移动root语句并添加空location块):

root /usr/share/nginx/html;
...
location = /index.html {}

有关详情,请参阅this document