nginx - 来自单个目录的服务器,用于嵌套路径

时间:2016-09-28 07:36:18

标签: nginx url-rewrite-module nginx-location

我已将默认根目录设置为$ root以侦听端口80。

现在我想从不同的目录(share1)提供服务,如果使用/ user启动路径,即/ user,/ user / xyz,/ user / abc all应该从share1目录提供..

map $http_user_agent $root {
    "~*android" /home/vishant/devcenter/wava-v1.1/android;
    "~iPhone" /home/vishant/devcenter/wava-v1.1/ios;
    default  /home/vishant/devcenter/wava-v1.1/ios;
}

server {
    listen 80;

    root $root;
    index index.html;

    location /user {
           alias /home/vishant/devcenter/share1;
    }
}

总之,我想要下面的东西......虽然这不正确......

location /user/* {
    alias /home/vishant/devcenter/share1;
}

我希望所有以/ user(/ user / abc,/ user / xyz)开头的请求都应该访问index.html文件。

1 个答案:

答案 0 :(得分:0)

为了明确并且有效,您可以将主//user根分开。

map $http_user_agent $root {
    "~*android" /home/vishant/devcenter/wava-v1.1/android;
    "~iPhone" /home/vishant/devcenter/wava-v1.1/ios;
    default  /home/vishant/devcenter/wava-v1.1/ios;
}

server {
    listen 80;

    location / {
        root $root;
        index index.html;
    }

    location /user {
        alias /home/vishant/devcenter/share1;

        rewrite ^(.*)$ /user/index.html last;
    }
}

它应匹配以/user开头的所有内容和指定路径的别名。