apahce文件下载验证服务器配置

使用 apache: X-Sendfile 特性
不只是apahce支持,其他常见Web Server都支持,只是名称不同。如下:
nginx: X-Accel-Redirect
squid: X-Accelerator-Vary
lighttpd: X-Sendfile/X-LIGHTTPD-send-file

打开.htaccess支持(请参考htaccesss配置章节)

.htaccess 放在网站根目录

Options +FollowSymlinks -Multiviews
<IfModule mod_rewrite.c>
  RewriteEngine On

  RewriteCond % !-f
  RewriteCond $1 !^(dl.php)
  RewriteRule ^(.*)$ /dl.php?file=$1 [QSA,PT,L]
</IfModule>

dl.php

$file=$_GET ['file'];
$sign=$_GET ['sign'];
if( $sign== 'ok') { 
     header( "Content-Type: application/octet-stream");
     header("X-Sendfile: /file/" .$file );}
else {
     echo("http/1.1 403 Forbidden"); 
}

调用方式

http://down.lren.org/down/fs2.zip?sign=5fdb19c709d67
#注意不能调用真实存在的文件,否则会跳过验证
#nginx支持目录禁止外网访问
#apahce有一个好处,可以在任意目录配置.htaccess