Запрет на скачку файлов по "реферу"?

P
На сайте с 21.08.2008
Offline
65
816

Как сделать, что бы качать файлы с определенной папки можно было, только если переход по ссылке осуществлен с двух сайтов site1.ru site2.ru?

Папка site1.ru/files/

Нужно просто что-то прописать в .htaccess или все сложнее?

Помогите, срочно надо.:gm:

K
На сайте с 19.03.2008
Offline
58
kkc
#1

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^http://site1.ru/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://site2.ru$ [NC]

RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ http://google.com [R,NC]

Вместо jpg etc - нужные расширения, вместо google.com - куда редирект

P
На сайте с 21.08.2008
Offline
65
#2
kkc:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://site1.ru/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://site2.ru$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ http://google.com [R,NC]

Вместо jpg etc - нужные расширения, вместо google.com - куда редирект

Не работает.😒

pianist добавил 12.02.2009 в 00:41

Так тоже не работает :(

RewriteCond %{HTTP_REFERER} !^http://test.ru/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://test.ru$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.test.ru/.*$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.test.ru$ [NC]

RewriteRule .*\.(mp3|wma|exe|pdf|rar|zip|png|gif|jpeg|jpg)$ http://test.ru [R,NC]

J
На сайте с 02.02.2009
Offline
53
#3

RewriteCond %{HTTP_REFERER} !^http://%{HTTP_HOST}.*$

RewriteRule \.(mp3|wma)$ 404.php [NC,L]

м?

P
На сайте с 21.08.2008
Offline
65
#4
jumash:
RewriteCond %{HTTP_REFERER} !^http://%{HTTP_HOST}.*$
RewriteRule \.(mp3|wma)$ 404.php [NC,L]

м?

Что это? Если оно и запрещает, то со всех, а мне необходимо с 2 сайтов разрешить!

Anarchist
На сайте с 23.07.2008
Offline
185
#5

pianist, а методом php никак? там все намного проще

P
На сайте с 21.08.2008
Offline
65
#6
Anarchist:
pianist, а методом php никак? там все намного проще

Я не знаю как это сделать, потому и спрашиваю. Мне не важно какой метод – главное что бы работало!

Поискал – такие же вопросы здесь на форуме поднимались, но почему-то никто так ничего и не предложил. Но пару раз встречается фраза «это элементарно»😂

[Удален]
#7

В папку с файлами (/files/ надо соответственное заменить) положить htaccess

RewriteEngine On

RewriteBase /files/

RewriteCond %{HTTP_REFERER} !^(.+)(host1.ru|host2.ru)(.+)$

RewriteRule (.*) - [F]

если методой пхп то кладем туда index.php и такое в хтаксесс

RewriteEngine On

RewriteBase /files/

RewriteRule $[^/]+^ index.php

index.php:


$filename=basename($_SERVER['REQUEST_URI']);

if ((!is_file("./".$filename))||(strrchr($filename,".")=='php'))
{
header("HTTP/1.0 404 Not Found");
die("Защита от XSS ну и просто если файла нет");
}

$allowed_hosts=array ("host1.ru","host2.ru");

preg_match_all("|http:\/\/([^/]+)\/|Us",$_SERVER['HTTP_REFERER'],$out,PREG_SET_ORDER);
if (array_search($allowed_hosts,$out[0][1])!==FALSE)
echo file_get_contents("./".$filename);
else
{
header("HTTP/1.0 301 Forbidden");
die("Доступ запрещен");
}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий