mod_rewrite и перенаправление при прямой ссылке

1. Zдешний 22.12.2012 / 20:37
добрый всем вечер. в mod_rewrite полный нольsmile поэтому прошу решения такого вот вопроса: как установить перенаправление через mod_rewrite при переходе по прямой ссылке на скачивание файла. т.е. мне нужно отдавать файл только через скрипт и пресекать все попытки скачать файл по прямой ссылке. или выдавать ошибку при такой попытке, или перенаправлять на скрипт. есть ли готовые решения подобного рода или всё же придётся копать поглубже?

2. Zдешний 22.12.2012 / 22:14
и как я понял, если отдавать файл через readfile, то это сильно нагрузит сервер?

3. Иван 22.12.2012 / 22:27
напиши в .htaccess
<Files *>
order allow,deny
deny from all
</Files>

и закинь в папку с файлами


мод реврайт тут не нужен

4. Zдешний 22.12.2012 / 22:55
3. steel97, запрет на скачивание всех файлов? ну как то так

5. Иван 22.12.2012 / 23:04
выдачу файла я делал так:
$file_path = "data/files/$file_id/$_fnamex";
$path_parts = pathinfo($file_path);
$file_name = $path_parts['basename'];
$file = @fopen($file_path,"rb");
header("Cache-Control: public");
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: Downloading file from".site);
header("Content-Type: ".$core->read("data/files/$file_id/type.std"));
header("Content-Disposition: attachment; filename=\"{$file_name}\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($file_path));
while(!feof($file))
{
echo fread($file, 500*1024);
//echo readfile($file);
flush();
if (connection_status()!=0)
{
@fclose($file);
die();
}
}
@fclose($file);


тока не забудь все лишнее повыкидывать из этого куска кода

6. Zдешний 22.12.2012 / 23:05
нашёл по разрешениям

Options -Indexes
RewriteEngine on
RewriteCond % !^$
RewriteCond %{HTTP_REFERER} !^http://promo\.somesite\.com(/)?.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|png|swf)$ - [NC,F]

всем спсsmile
5. steel97, пишут на просторах, что так грузит сервер сильно

URL: https://visavi.net/topics/35895