仅为php用户下载文件htaccess


download files for only php users htaccess

请问我如何使用htaccess做到这一点

if (url has not parameter ?down=true) 
redirect back
else
do noting
end if

示例

example.com/upload/file.pdf//它不能下载文件

example.com/upload/file.pdf?down=true//必须下载文件

请帮助我:)

这是我的htaccess文件

RewriteEngine on
RewriteRule ^upload/file/(.*) http':'/'/www'.example'.org'/down.php?file=$1 [L]

这是向下的.php页面

<?php
session_start();
if(isset($_SESSION["user_id"])){ 
if(isset($_GET["file"])) $file = mysql_escape_string($_GET["file"]);
$file = "http://www.example.org/upload/file/".$file;
$file = preg_replace("/ /", "%20", $file);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
//header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}else{
header('Location:login.php');
}
exit();

您需要RewriteCond中的%{QUERY_STRING}变量来检查像这样的重定向。

RewriteEngine On
RewriteCond %{QUERY_STRING} !(^|&)down=true($|&)
RewriteRule example'.com'/upload'/file'.pdf /index.php [L]

如果您的RewiteCond在查询字符串中有一个down=true,则不要应用以下规则,否则将所有请求重写为/index.php