Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

htaccess запрет на картинки


Gann
 Поделиться

Рекомендованные сообщения

Доброго утра!

 

Знающие, подскажите, пожалуйста.

Хочу защитить все картинки из папки image/catalog/papka/file.jpg от просмотра по прямым ссылкам. Добавил файл .htaccess в папку image/catalog/papka, в нём указал "Deny from all". 

 

Всё хорошо, картинки больше не открываются по прямым ссылкам.

 

Но! Картинки также не будут открываться и при запросе "из движка". Пока они в кэше - всё хорошо. Вдруг я очищу кэш - движок не сможет пройти в папку image/catalog/papka и взять нужные картинки. Как разрешить движку читать картинки, а всем остальным - нет?

 

Есть выделенный IP адрес. Если я укажу его:

 

Order allow,deny
Deny from all
Allow from <--ip-->

Будет ли движок видеть эти картинки? Или как то по другому нужно это сделать?

Ссылка на комментарий
Поделиться на других сайтах

2 часа назад, Gann сказал:

Доброго утра!

 

Знающие, подскажите, пожалуйста.

Хочу защитить все картинки из папки image/catalog/papka/file.jpg от просмотра по прямым ссылкам. Добавил файл .htaccess в папку image/catalog/papka, в нём указал "Deny from all". 

 

Всё хорошо, картинки больше не открываются по прямым ссылкам.

 

Но! Картинки также не будут открываться и при запросе "из движка". Пока они в кэше - всё хорошо. Вдруг я очищу кэш - движок не сможет пройти в папку image/catalog/papka и взять нужные картинки. Как разрешить движку читать картинки, а всем остальным - нет?

 

Есть выделенный IP адрес. Если я укажу его:

 


Order allow,deny
Deny from all
Allow from <--ip-->

Будет ли движок видеть эти картинки? Или как то по другому нужно это сделать?

 

Заглушка ставится на уровне сервера, с помощью настройки файла .htaccess или nginx.conf. Код, который необходимо вставить в .htaccess:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?server\.ru/ [NC]
RewriteCond %{REQUEST_URI} !null\.gif$ [NC]
RewriteRule \.(jpg|jpeg|gif|bmp|png)$ http://i.imgur.com/qX4w7.gif [L]

То же самое для nginx.conf:

location ~* ^.+\.(jpg|jpeg|gif|png)$ {
     root /path/to/root;
     valid_referers none blocked server_names ~\.server1\. ~\.server2\.;
     if ($invalid_referer) {
       rewrite ^ http://i.imgur.com/qX4w7.gif last;
     }
   }

Теперь при каждом обращении к файлу изображения сервер будет проверять с какого сайта пытаются загрузить изображение. Если не с Вашего, то подставляет изображение http://i.imgur.com/qX4w7.gif. Примечание: я понятия не имею как это будет работать с поисковыми системами. Если кто-нибудь объяснит, буду рад и добавлю сюда.

Взято отсюда 

 

Изменено пользователем flai0616
  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

1 минуту назад, flai0616 сказал:

 

Заглушка ставится на уровне сервера, с помощью настройки файла .htaccess или nginx.conf. Код, который необходимо вставить в .htaccess:


RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?server\.ru/ [NC]
RewriteCond %{REQUEST_URI} !null\.gif$ [NC]
RewriteRule \.(jpg|jpeg|gif|bmp|png)$ http://i.imgur.com/qX4w7.gif [L]

То же самое для nginx.conf:


location ~* ^.+\.(jpg|jpeg|gif|png)$ {
     root /path/to/root;
     valid_referers none blocked server_names ~\.server1\. ~\.server2\.;
     if ($invalid_referer) {
       rewrite ^ http://i.imgur.com/qX4w7.gif last;
     }
   }

Теперь при каждом обращении к файлу изображения сервер будет проверять с какого сайта пытаются загрузить изображение. Если не с Вашего, то подставляет изображение http://i.imgur.com/qX4w7.gif. Пример работы посмотреть можно здесь. Примечание: я понятия не имею как это будет работать с поисковыми системами. Если кто-нибудь объяснит, буду рад и добавлю сюда.

 

Не то)

 

Открыть в браузере по прямой ссылке изображение - вот это нужно запретить.

Ссылка на комментарий
Поделиться на других сайтах

3 минуты назад, Gann сказал:

 

Не то)

 

Открыть в браузере по прямой ссылке изображение - вот это нужно запретить.

Понял) Ну я так понял смысл в защите от копирования? А если схитрить?)

"Если вы пользуетесь редактором Adobe Photoshop, этот способ вам понравится (а если нет – ему легко научиться). Наложение прозрачного слоя несложно осуществить: создается прозрачное изображение одного размера с уникальным изображением и накладывается на его передний план с помощью html или css. Изображение на странице ничем не будет отличаться от обычных, Но, после его сохранения, плагиатчик увидит на компьютере не желаемую добычу, а верхний слой. Easy, как говорится!"

Взято отсюда https://singree.com/blog/9-tips-to-protect-your-images-copyrights/

Ссылка на комментарий
Поделиться на других сайтах

2 минуты назад, nikifalex сказал:

срочно идти почитать теорию вебсервера хотя бы на уровне "для чайника".

 

спасибо, обязательно)

 

 

В общем:

1. background-image: url (/image/papka/file.jpg)

2. htaccess c 

Deny from all

в папке /image/papka/

 

3. Как сделать, чтобы показывалось на сайте, но не было доступно по прямой ссылке https://site.ru/image/papka/file.jpg

 

 

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

Ссылка на комментарий
Поделиться на других сайтах

Видел такой вариант

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?site.ru [NC]

RewriteRule \.(jpg|JPG|jpeg|png|gif)$ - [NC,F,L]

 

Ссылка на комментарий
Поделиться на других сайтах

Order deny,allow
Deny from all
<FilesMatch "(icon|cart|logo|bioptron-logo5).png">
allow from all
</FilesMatch>

Нужно вот так было))

Всем спасибо, вопрос решён. 

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.