nginx — сервер из одного каталога для вложенного пути

Я установил корневой каталог по умолчанию как $ root для прослушивания порта 80.

Теперь я хочу обслуживать из другого каталога (share1), если путь начинается с /user, т.е. /user , /user/xyz , /user/abc все должны обслуживаться из каталога 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.


person Vishant dhandha    schedule 28.09.2016    source источник


Ответы (1)


Чтобы было понятно и работало, вы можете разделить основной корень / и /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 и псевдонима по указанному пути.

person sokoli    schedule 28.09.2016
comment
пытался реализовать это .. но не сработало .. /user/abc по-прежнему получает 404 Not Found - person Vishant dhandha; 28.09.2016
comment
тогда файл существует? ;) - person sokoli; 28.09.2016
comment
у меня есть только файл index.html, и я хочу вызвать index.html. не другие. - person Vishant dhandha; 28.09.2016
comment
Затем добавьте правило перезаписи, добавьте пример для ответа. - person sokoli; 28.09.2016
comment
попробовал ваше решение, но не сработало... тот же 404 Not Found :( - person Vishant dhandha; 28.09.2016
comment
я создал еще один вопрос. может выглядит легко.. - person Vishant dhandha; 28.09.2016