我想保护服务器中的某些文件免遭下载,但我的网站需要访问它们。我想保护一些字幕文件,这些文件需要网站访问,但我不希望任何人下载它们。该网站是托管的。
例如,某些网站使用一些与用户,视频和IP相关的奇怪字符串。可以在我的案例中使用这样的东西。
http://www11.some-site.com:182/d/qygiatnqvsulzrqmk7n6nbhddbcscvyguy4auc3fn4nvf23jp64tjcpa/File-needed.mp4?start=0
答案 0 :(得分:9)
如果您使用 Apache ,则必须在.htaccess文件中使用重写规则。如果您使用的是其他HTTP Server品牌,则应使用与此处显示的逻辑相同的逻辑,因此请检查您的HTTP服务器手册。
<强>说明:强>
当您键入www.me.com/index.php时,PHP系统会将您使用的echo
命令生成的内容放入代码中。
当您输入www.me.com/myfiles/iou345yo13i2u4ybo34ybu3/passwords.txt时,您的服务器会将文件内容放入客户端浏览器,这将要求您将其作为文件下载或显示为页面,具体取决于文件扩展名。
现在,如果你在.htaccess文件中执行类似的操作:
RewriteEngine On
RewriteRule ^myfiles/([^/]*)^.pdf$ /index.php?file=$1& [L]
# avoit direct access to your server directories file listing
Options All -Indexes
您将输入www.me.com/myfiles/file123.pdf,但服务器将执行index.php,文件名作为“file”参数的内容,并且在代码中,您将能够检查用于查看用户是否具有下载此文件的权限的会话。
如果用户具有授权,则使用readfile()函数将文件发送给用户,并且他将无法识别它来自何处(我的意思是真实路径)。
请看这里如何做到这一点:
答案 1 :(得分:-4)
更改内容中的644权限。