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