我想要完成的是能够通过这样的路线:
<div class="grid1">Some Text 1 | </div>
<div class="grid1">Some Text 2 | </div>
<div class="grid1">Some Text 3 | </div>
<div class="grid1">Some Text 4 | </div>
<div class="grid1">Some Text 5 | </div>
<div class="grid1">Some Text 6 | </div>
<div class="grid6">Some Text 7 | </div>
在Nginx中我希望它读取abc123然后调用一段代码(不要关心什么语言:php,python,golang,fortran ......)然后返回所需的实际密钥加载文件。
在我的配置中,我有这个:
mysite.com/abc123/file.mp3
当我传递server{
#lots of basic stuff here
location / {
mp4;
mp4_buffer_size 1m;
mp4_max_buffer_size 5m;
root /my_path/;
}
}
时,这是有效的。如果该文件存在于abc123/file.mp3
。
我想要的是将(从数据库)/my_path/abc123/file.mp3
转换为abc123
myKey123
首先,这是否可能?
如果是这样,我不确定如何处理这个问题。我知道这个问题可以有多种解决方案,但任何方向都会受到赞赏。
答案 0 :(得分:0)
PHP脚本可以使用X-Accel-Redirect
标头发出重定向。这被nginx
视为内部重定向,因此重写的URI不会向用户公开。 documentation在细节上有点薄,希望你能找到一个使用PHP的例子。
如果您可以使用唯一的前缀对重写的URI进行围栅,例如/download/myKey123/file.mp3
,您可以使用internal
指令保护文件不被直接访问。有关详细信息,请参阅this document。在这种情况下,您不需要混淆myKey123
。
location /download/ {
internal;
...
}