如何屏蔽受保护的文件夹路径以使其看起来像是从其他位置提供的?

如何屏蔽受保护的文件夹路径以使其看起来像是从其他位置提供的?

我正在使用 X-Accel 来提供包含图像的受保护文件夹:https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/

目前我将文件存储在/protected_files文件夹中。因此,现在为了使用 X-Accel 查看文件,我传递了包含 URL 的路径/protected_files,例如protected_files/image1.jpg

这是我对受保护文件夹设置保护的方法:

location /protected_files {
  internal;
}

然后,为了使用 X-Accel 查看文件,我传递了带有 的路径X-Accel-Redirect

有没有办法屏蔽 URL,使其看起来像是从另一个 URL 提供的?喜欢吗/fake_folder/image1.jpg

我尝试过但没有成功的方法是创建另一个具有所需假名的文件夹,然后将别名添加到真实名称:

location /fake_folder {
  internal;
  alias /protected_files;
}

然后我传递 URL /fake_folder/image1.jpg,但出现错误 404

答案1

根据文档在内部,重写请求算作内部请求。以下应该有效:

location /fake_folder {
    rewrite ^/fake_folder/(.*)$ /protected_files/$1 break;
}

相关内容