Tyi*_*ilo 2 rewrite nginx directoryindex
我有以下服务器配置:
server {
listen 80;
server_name _;
root /var/www/;
location /calendars/ {
autoindex on;
try_files $uri.ics $uri =404;
}
}
Run Code Online (Sandbox Code Playgroud)
如果希望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;
}
}
Run Code Online (Sandbox Code Playgroud)
try_files
如果您希望加载或自动生成目录索引,您还需要检查目录。
try_files $uri.ics $uri $uri/ =404;
Run Code Online (Sandbox Code Playgroud)
根据指令的文档try_files
:
可以通过在名称末尾指定斜杠来检查目录的存在,例如
$uri/
换句话说,$uri
表示“在给定路径上尝试一个文件”,而$uri/
表示“在给定路径上尝试一个目录”,后者是导致该目录自动索引启动的原因。