Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Apache HTTP Server: Настройка .htaccess

Ответить
Настройки темы
Apache HTTP Server: Настройка .htaccess

Дизайнер


Сообщения: 410
Благодарности: 1

Профиль | Отправить PM | Цитировать


Возможно ли с помощью .htaccess запретить загрузку графики на других хостах(т.е. как на народ.ру)?

Если это делается не через .htaccess, то как?

Отправлено: 17:47, 12-10-2003

 

Старожил


Сообщения: 335
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Agent Comanche
С других хостов? Ты это имеешь в виду?

-------
Спасибо за внимание
Slackware и LFS...


Отправлено: 03:08, 13-10-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Дизайнер


Сообщения: 410
Благодарности: 1

Профиль | Отправить PM | Цитировать


Т.е. у меня например на серве лежит картинка http://site.com/image.jpg

Если я на осзоне прописываю [ img ] http://site.com/image.jpg [ /img ], то здесь картинки не должно быть видно.

И нужно сделать один каталог, чтобы с него можно было грузить картинки. Вот что я имел ввиду.

Отправлено: 10:25, 13-10-2003 | #3


Старожил


Сообщения: 335
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Если ты хочешь запретить загрузку картинок с твоего сайта по ссылке, можно отслеживать HTTP_REFERER и запрещать загрузку для вызовов с другого сервера.

-------
Спасибо за внимание
Slackware и LFS...


Отправлено: 02:26, 14-10-2003 | #4


Дизайнер


Сообщения: 410
Благодарности: 1

Профиль | Отправить PM | Цитировать


Посмотрел насчет HTTP_REFERER, нашел доку. (ничего не понял )

И вот чего нашел:

Код: Выделить весь код
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} !^.*sitename\.ru.*$ [NC, OR]
RewriteCond %{HTTP_HOST}    !^.*sitename\.ru.*$ [NC]
RewriteRule .*\.(gif|jpg)$ - [F]
Вроде бы это то, что мне надо. Или нет? Всё ли тут правильно?

И как я понимаю, это будет для всего сайта в целом.
А как сделать, чтобы с директории, например http://site.com/temp/ можно было загружать картинки с других серверов?
Т.е. со всех нельзя, кроме temp.

Отправлено: 10:21, 14-10-2003 | #5


Старожил


Сообщения: 335
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Agent Comanche
Здесь можно воспользоваться перловым скриптом:
Код: Выделить весь код
 
my $picdir="/usr/local/apache/pics"; 
my $ref=$ENV{'HTTP_REFERER'}; 
my $myhost= quotemeta($ENV{'HTTP_HOST'}||$ENV{'SERVER_NAME'}); 
 * * * *if ($ref and $ref !~m|^http://$myhost/|) 
 * * * *{ 
 * * * * * * * *display_image("copyright.gif"); 
 * * * *} 
 * * * * else 
 * * * * { 
 * * * * * * * *my ($image_file)=$ENV{'PATH_INFO'}=~/^([\w+.]+)$/; 
 * * * * * * * *display_image($image_file); 
 * * * * } 
 
sub display_image 
{ 
 * * * * my $file=shift; 
 * * * * my $full_path="$picdir/$file"; 
 * * * * open IMG, $full_path; 
 * * * * print "Pragma: no-cache\n"; 
 * * * * print *"Content-type: image/gif\n\n"; 
 * * * * binmode; 
 * * * * my $buffer=""; 
 * * * * while (read(IMG, $buffer, 16_384)) 
 * * * * { 
 * * * * * * * * *print $buffer; 
 * * * * *} 
 * * * * * * * * *close IMG; 
} 
 
sub not_found 
{ 
 * * * * *print <<END_OF_ERROR; 
 * * * * *Status: 404 Not Found 
 * * * * *Content-type: text/html 
 * * * * *<HTML> 
 * * * * *<HEAD> 
 * * * * *<TITLE>Файл не найден</TITLE> 
 * * * * *</HEAD> 
 * * * * *<BODY> 
 * * * * * ... 
 * * * * *</BODY> 
 * * * * *</HTML> 
 * * * * *END_OF ERROR 
 * * * * *exit; 
}
Я сам с этим не сталкивался, поэтому этот пример я взял из книги "CGI-программирование на Perl" (O'Reilly)
Может я тут чего напутал, поэтому про непонятные места спрашивай подробнее, постараюсь помочь.

-------
Спасибо за внимание
Slackware и LFS...


Отправлено: 03:02, 15-10-2003 | #6


Дизайнер


Сообщения: 410
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо, Sean Ingumsky
Но чесное слово, понятия не имею, что делать с этим скриптом.

И настараживает это строка(для каждой картинки?):
Код: Выделить весь код
if ($ref and $ref !~m|^http://$myhost/|)
{
                display_image("copyright.gif"); 
}
Задачу нужно решить наиболее оптимальным способом и меньшим количеством кода.

Сегодня затестю тот код для .htaccess, по идее это он.
Вопрос теперь в другом, как разрешить загрузку картинок из директории temp для запросов с других серверов?

Отправлено: 10:48, 15-10-2003 | #7


Дизайнер


Сообщения: 410
Благодарности: 1

Профиль | Отправить PM | Цитировать


Ситуация такая.

Прописал вот это:
Код: Выделить весь код
RewriteEngine on 
RewriteCond %{HTTP_REFERER} ^$ [OR] 
RewriteCond %{HTTP_REFERER} !^.*site\.region\.ua.*$ [NC, OR] 
RewriteCond %{HTTP_HOST} !^.*site\.region\.ua.*$ [NC] 
RewriteRule .*\.(gif|jpg)$ - [F]
При запросе моего урла выкидывает ошибку 500
Цитата:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Кто знает, что в коде не так?

Отправлено: 00:37, 16-10-2003 | #8


Старожил


Сообщения: 335
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Agent Comanche
Кода не так много - два маленьких оператора логического ветвления и две фунуции вывода.
Цитата:
И настараживает это строка(для каждой картинки?):
Код: Выделить весь код
if ($ref and $ref !~m|^http://$myhost/| 
{ * * * * * * * * 
display_image("copyright.gif"); 
}
А что тут непонятного? Если $ref (переменная окружения с адресом страницы, откуда пришёл запрос) существует, и $ref не является твоим разрешённым хостом, тогда запускается функция disply_image с атрибутом copyright.gif, т.е. отсылается картинка с твоим копирайтом. :-))

-------
Спасибо за внимание
Slackware и LFS...


Отправлено: 01:20, 16-10-2003 | #9


Аватара для Guest

Guest


Профиль | Цитировать


Дык, все просто. А Вы столько всего нагарадили


<Files "\.(inc|sql|...другие расширения...)$">
order allow,deny
deny from all
</Files>


Спасибо можете не говорить

С наилучшими пожеланиями,
Клименко Данил aka Switch
*ICQ:
176299915
*Emails:
[ switch@mail.zp.ua ] & [ admin@switch.pp.ru ]
*Web
[ http://www.switch.pp.ru ]

Добавлено:

Сорри, комменты :

Надо это в .htaccess засунуть, а сам файл в директорию, из которой нельзя картинки грузить кинуть. Из других директорий файлы грузиться будут, а из этой - нет. Жаль времени не было... не помню, какой код ошибки выдает

С наилучшими пожеланиями,
Клименко Данил aka Switch
*ICQ:
176299915
*Emails:
[ switch@mail.zp.ua ] & [ admin@switch.pp.ru ]
*Web
[ http://www.switch.pp.ru ]
.HTACCESS -

Отправлено: 19:35, 16-10-2003 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Apache HTTP Server: Настройка .htaccess

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VPN через HTTP server... minion Сетевые технологии 7 22-04-2007 23:19
[htaccess] redirect https to http strejiok Вебмастеру 9 25-11-2006 13:50
apache htaccess rewrite задержка на исполнение E-mail Вебмастеру 1 20-11-2005 21:03
Apache HTTP Server 2.0.45 - 2.0.47 для Win (all) TimStich Хочу все знать 6 10-09-2003 04:45
Настройка apache kuzya Сетевые технологии 1 12-05-2003 09:34




 
Переход