У меня есть простой файл конфигурации nginx -
server {
listen 80 default_server;
root /var/www/example.com;
#
# Routing
#
location / { index index.html; }
location /foo { index foo.html }
#
# Logging
#
access_log /var/log/nginx/{{ www_domain }}.log;
error_log /var/log/nginx/{{ www_domain }}-error.log error;
server_name example.com;
charset utf-8;
}
Как видите, всего 2 маршрута - путь /
и /foo
.
Когда захожу на
www.example.com/
, все работает правильно. Я вижу обслуживаемуюindex.html
страницу.Когда я перехожу к
www.example.com/foo
, я получаю сообщение об ошибке 404, когда я должен получить страницуfoo.html
.
Глядя в логи, вижу такую ошибку:
2018/08/13 21:51:42 [error] 14594#14594: *6 open() "/var/www/example.com/foo" failed (2: No such file or directory), client: XX.XX.XX.XX, server: example.com, request: "GET /foo HTTP/1.1", host: "example.com"
Ошибка означает, что он ищет файл с именем /var/www/example.com/foo
, а не /var/www/example.com/foo.html
, как я ожидал.
Почему это вообще происходит и почему этого не происходит на моем корневом пути /
?
Спасибо!
Изменить: это работает, если я посещаю www.example.com/foo.html
напрямую