我想使用autoindex来暴露服务器上的一些文件,为了方便起见,我想在url中使用short_id,但在文件系统中使用full_id。
当我尝试访问子目录或下载文件时,我总是得到根目录的内容,它不会正确返回我需要的内容
例如:访问examlple.com/12345
和example.com/12345/subdirectory
得到了相同的结果
我尝试了以下配置。
map $room_id $path_name {
"12345" "12345-ABCD";
"6789" "disable";
default "null";
}
server
{
root /disk1/web/root/path;
location ~^/(.*?)/(.*) {
set $room_id $1;
set $url /$2;
if ( $path_name = "null" ){
return 404;
}
if ( $path_name = "disable" ){
return 403;
}
alias /disk2/path/to/$path_name/;
autoindex on;
#Send the data in JSON
autoindex_format json;
addition_types application/json;
#Calling from SERVERNAME/autoindex/*
add_before_body /autoindex/header.html;
add_after_body /autoindex/footer.html;
#Need to tell that we are sending HTML
add_header Content-Type text/html;
}
}
1条答案
按热度按时间0tdrvxhp1#
通过使用
/path/to/$path_name$2;
问题解决了!!谢谢理查德史密斯!!!您从请求的URL中捕获了$url,但从未使用过它。也许您应该使用alias /disk 2/path/to/$path_name$url;- 顺便说一句,选择一个与$url不同的名称可能会更好,因为已经有一个外观非常相似的内部定义变量,名为$uri。- Richard Smith
第一次使用这个平台,没有找到如何设置提交为正确答案,所以复制下来,如果有什么错误,请告诉我