Директива index
работает с URI, которые заканчиваются на /
:
Таким образом, URI /
дает вам содержимое /index.txt
, а /a/
дает вам содержимое `/ а / index.txt.
Если вы предоставляете Nginx с URI каталога (но без конечного /
), поведение по умолчанию - перенаправление на тот же URI, но с конечным /
.
Так работает директива index
. Подробнее см. в этом документе .
Если вам нужно что-то, отличное от поведения по умолчанию, вам придется сделать это вручную, используя try_files
. Подробнее см. в этом документе .
Например, чтобы вернуть содержимое файла index.txt
, указав URI каталога без завершающего /
, используйте:
root /data;
location / {
try_files $uri $uri/index.txt =404;
}
Обратите внимание, что location /a { ... }
блок не требуется ни в этом примере, ни в примере в вашем вопросе.