У меня следующая конфигурация сервера:
server {
listen 80;
server_name _;
root /var/www/;
location /calendars/ {
autoindex on;
try_files $uri.ics $uri =404;
}
}
Если бы ожидал получить autoindex
страница при посещении http://example.com/calendars/
, однако я получаю 404 File not found
ошибка вместо этого.
Я хочу, чтобы сервер делал что-то вроде этого псевдокода:
if($uri is directory) {
if(one of index pages exists in directory) {
show index page;
} else {
show autoindex page;
}
} else {
if($uri.ics exists) {
show $uri.ics;
} else if($uri exists) {
show $uri;
} else {
show 404 page;
}
}
Вам также необходимо проверить каталог в try_files
если вы хотите, чтобы индекс каталога загружался или создавался автоматически.
try_files $uri.ics $uri $uri/ =404;
По документация для try_files
директива:
Можно проверить существование каталога, указав косую черту в конце имени, например
$uri/
Другими словами, $uri
означает "попробовать файл на заданном пути ", а $uri/
означает "попробовать каталог по заданному пути ", и именно последний вызывает автоматическую индексацию этого каталога.