путаница директив местоположения в конфигурации nginx

Я хочу иметь директиву местоположения для URL-адреса «localhost/test/» в конфигурации nginx.

Я попробовал следующее в файле конфигурации:

server {
listen 80;
server_name localhost;
location /test/ {
root /home/test;
index index.html index.htm
}

}

Это всегда дает мне ошибку 404. Потом я попробовал этот

server {
listen 80;
server_name localhost;
location / {
root /home/test;
index index.html index.htm
}

}

Он просто отлично работает с URL-адресом «localhost».

Я не могу понять, почему в первом случае выдает ошибку 404 !!


person beNerd    schedule 30.07.2013    source источник
comment
Вы пробовали localhost/test, удалив последний «/»?   -  person Karthikeyan    schedule 30.07.2013
comment
Можете ли вы просто сделать root псевдонимом в /test/ case и обновить меня?   -  person Karthikeyan    schedule 30.07.2013
comment
нет то же самое!!   -  person beNerd    schedule 30.07.2013
comment
я использовал местоположение /test/ {псевдоним /home/test; индекс index.html index.htm }   -  person beNerd    schedule 30.07.2013
comment
Вы добавляете фиктивный / и пробуете с рутом в /test/.   -  person Karthikeyan    schedule 30.07.2013
comment
давайте продолжим это обсуждение в чате   -  person beNerd    schedule 30.07.2013


Ответы (1)


Одна из очевидных проблем с вашей конфигурацией заключается в том, что необходимо использовать псевдоним, а не root.

location /test/ {
    alias /home/test/;
}

потому что root заставляет nginx искать /home/test/test в соответствии с вашей конфигурацией.

person Karthikeyan    schedule 30.07.2013