nginx HttpSecureLinkModule的php例子

我有这个configuration,但我不能使它的工作,我有一个困难的时间试图找出它..

我正在尝试使用HttpSecureLinkModule获取nginx下的文件服务器,并使其过期。

这里是我在nginx中的:

location /files/ { secure_link $arg_st,$arg_e; secure_link_md5 "secret$uri$arg_e"; root /usr/share/nginx/www; if ($secure_link = "") { return 403; } if ($secure_link = 0) { return 410; } } 

而现在在远程服务器hiddenfile.php

 <?php $file="file/99/240182409124019248407098227489702"; $secret_word = "secret"; $uri_prefix = "http://domain.com/"; $time = time()+600; $md5 = base64_encode(md5($secret_word.$file.$time, true)); $md5 = strtr($md5, '+/', '-_'); $md5 = str_replace('=', '', $md5); $url= $uri_prefix.$file.'?st='.$md5.'&e='.$time; ?> 

结果是这样的: http : //domain.com/file/99/240182409124019248407098227489702?st=94ASFASF7SAF8AF9S898&e=38573287583

我在nginx的acceess.log中得到的是一个403错误..

任何人都可以提供一个简单的例子,如何做到这一点? 我已经尝试了几件事情,没有运气..

提前致谢…

这是阿列克谢十的这个问题的答案..

 $uri in nginx starts with slash and in php you miss it – Alexey Ten 14 hours ago