У меня появилась очень полезная для некоторых вебмастеров информация о .htaccess... Речь идет о том, чтобы ограничить использование картинок с вашего сервера нехорошими людьми. Зачем это надо? А надо это потому, что некоторые хостинги требуют оплаты за трафик.
Представьте себе ситуацию, когда один добрый, хороший и приятный во всех отношениях человек разместил на своем сайте коллекцию картинок - кадров из какого-нибудь популярного фильма. Картинки пользуются большой популярностью, народ активно смотрит их. Это, естественно, выливается в неплохой исходящий трафик с сервера. Для примера - этот сайт порождает трафика примерно на 5-6 Гб в месяц, и это при почти полном отсутствии картинок! Сайт же, ориентированный на картинки (ну не надо меня обвинять в поддержке XXX сайтов...), способен порождать трафик сотнями Гб. в месяц. И за все это надо платить (например, по 2.5 доллара за 1 Гб).
И вдруг этот чудесный, замечательный альтруист замечает, что
трафик увеличился вдвое, при той же посещаемости. Следовательно,
платить надо в два раза больше! Почему? Оказывается, какой-то крайне
нехороший человек тоже сделал сайт с теми же картинками. Но,
поскольку такие картинки в сети уже есть, нехороший человек решил
заодно не тратить свой трафик и использовать картинки с хоста
хорошего человека. И правда, тег img вовсе не запрещает
использование картинок с других хостов, знай пиши полный путь. И
радуется нехороший человек! Напакостил и счастлив.
Что же делать хорошему человеку? Закрывать сайт? Нет! Великий
защитник человечества - .htaccess - приходит на помощь!
Можно, оказывается, сделать так, чтобы картинки можно было
использовать только тому хосту, на котором они находятся. И сделать
это можно даже несколькими способами - либо через функции Apache,
либо через mod_rewrite (модуль Apache, занимающийся
перенаправлением на другие страницы).
Сначала посмотрим, как это можно сделать через
mod_rewrite. Для этого надо определить, откуда пришел
посетитель - если со своих страниц, то пустить его к картинке. Иначе
- послать далеко и надолго, а лучше всего на спонсора :) Делается
это через переменную HTTP_REFERER. Вот это надо приписать в
.htaccess(решение проблемы с помощью mod_rewrite взято с
сайта Master-X):
А теперь представьте себе, как работает mod_rewrite. Вся проблема
в том, что обработка запроса сервером происходит в несколько этапов.
Вкратце: сначала Apache обрабатывает URL, а затем ставит им в
соответствие файлы. Беда в том, что обработка .htaccess
происходит уже после обработки URL, поэтому чтобы обработать
инструкции mod_rewrite корректно, Apache делает два
раза одно и то же. Естественно, это сильно тормозит сервер.
Есть более удобное решение. В httpd.conf в секцию, относящуюся к
папке, либо в .htaccess можно добавить инструкции серверу не
отдавать картинки незнакомым клиентам. Это делается так:
SetEnvIfNoCase Referer "^http://www.webhowto.ru"
local_ref=1 <FilesMatch ".(gif|jpg)"> Order
Allow,Deny Allow from
env=local_ref </FilesMatch>
Ура! Работает! В смысле, не работает! :)
Остается добавить, что вы вполне можете точно так же сделать
защиту не только для jpg и gif, но и для любых других файлов, см.
документацию по Apache на предмет синтаксиса бокса FilesMatch. Вот и
все, на сэкономленные деньги купите себе халвы и наслаждайтесь!