Настройка Nginx с несколькими HTML-файлами - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть веб-сайт с несколькими html-файлами, которые я хочу использовать в Nginx.

server {
        listen 80;
        root /var/www;
        location / {
                index index.html;
        }

        location /projects/ {
                index projects.html;
        }

        server_name mylady17.de;


        location /shiny/ {
                proxy_pass http://104.248.41.231:3838/;
        }
}

Это способ настройки.Index.html отлично работает, но, однако, "http://mylady17.de/projects" выдает ошибку (404, не найден).Файл projects.html хранится в var/www/ и должен работать.Что я делаю неправильно?Почему я не могу получить доступ к файлу?

1 Ответ

0 голосов
/ 01 октября 2018

Директива index работает с URI, оканчивающимися на /, и пытается найти файлы путем добавления значения директивы к URI.Подробнее см. в этом документе .

Таким образом, ваш URI /projects не будет вызывать модуль индекса.Даже если вместо этого вы используете /projects/, модуль индекса попытается найти файл по адресу /var/www/projects/projects.html.


Чтобы указать один URI для данного файла, вы можете использовать точное совпадение location.Подробнее см. в этом документе .

Например:

location = /projects {
    rewrite ^ /projects.html last;
}

Если вы решили расширить это в будущем, требуя nginx для поискадля файлов, добавляя .html в конец URI, вместо этого вы можете использовать директиву try_files.Подробнее см. в этом документе .

Например:

location / {
    try_files $uri $uri/ $uri.html =404;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...