Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Как защитить форум от копирования ссылок на фотоматериалы?

Опубликовано:

Описываю суть проблемы. Некоторые авторы постов при размещении в них фотографий не хотят чтобы их фото было скопировано и размещено на др. форумах путем указания ссылок на это фото.

В админке, права доступа можно убрать чекбокс в "скачивание файлов". Сами же фотографии находятся например за февраль в uploads/monthly_02_2015. Далее идет путь к фото.

Можно ли как-то при копировании этого пути и вставки в др. форум сделать перенаправление и появлялось не само фото, а иконка с информацией о защите авторских прав?

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

Опубликовано:

Можно, но это настраивается на уровне сервера, и по одному фото указывать слишком геморно. Также зависит от того, какой линк для встраивания используется - прямой непосредственно на изображение или динамический.

 

Глобально хотлинк прикрепленных изображений запрещается правилами в .htaccess:

 

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?mysite\.ru
RewriteRule ^uploads/monthly_ /hotlinking.jpg [L,R]

Добавить после RewriteEngine On

В корне форума создать файл hotlinking.jpg

 

Для исключения яндекса и гугла после:

RewriteCond %{HTTP_REFERER} !^https?://(www\.)?mysite\.ru

 

следует добавить:

 

RewriteCond %{HTTP_REFERER} !^https?://www\.google\.
RewriteCond %{HTTP_REFERER} !^https?://(images\.)?yandex\.

Опубликовано:
  • Автор

У меня прописано:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule . /index.php [L]
 </IfModule>

 

Я прописываю следующее:

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://%{HTTP_HOST}/
RewriteRule ^uploads/monthly_ /hotlinking.jpg [L,R]
RewriteRule . /index.php [L] 
</IfModule>

 

Правильно?

Опубликовано:

Нужно вставить код там где указано - после RewriteEngine On, и больше ничего не нужно трогать. Зачем вы удалили реврайты форума и вставили хрен знает где?...

Если отсутствует RewriteEngine On - добавить его. Также следует отметить, что если стоит nginx вся статика как правило будет отдаваться им, а следовательно запросы до апача не дойдут и этот код не отработает. У вас как раз nginx стоит фронтендом:

 

Server: nginx

Погуглите правила запрета хотлинкинга для nginx и редактируйте его конфиг.

Опубликовано:
  • Автор

ОК! Спасибо.

Я специалист в др. области. А этот форум вынужден вести.

Опубликовано:

Я специалист в др. области. А этот форум вынужден вести.

Ну это понятно, все мы специалисты в других областях. Просто нужно читать внимательно.

 

Для nginx это будет выглядеть примерно так

 

	location ~* \.(jpg|jpeg|gif|png|bmp|ico|css|swf|js)$ {
		root /path/to/root;
		valid_referers none blocked server_names mysite.ru *.mysite.ru images.yandex.ru ~\.google\.;

		if ($invalid_referer) {
			rewrite ^(.*)$ /hotlinking.jpg redirect;
		}
	}

Но тут зависит от того, как сконфигурирован у вас этот локейшин.

Опубликовано:
  • Автор

У меня вот что полностью прописано в .htaccess:

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(jpeg|jpg|gif|png)$ /public/404.php [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Но сейчас уже задумываюсь стоит ли ставить "заглушку". У самого на др. форумах ссылки размещены на мой. Если бы это можно было на определенный форум или тему форума, другое дело. А тут на весь ресурс получается.

Опубликовано:

Не цитируйте пожалуйста длинные сообщения с кодом, а то страница превращается в нечитаемую портянку.

 

У меня вот что полностью прописано в .htaccess:

Это если бы у вас был голый апач, правила реврайта следовало вставлять здесь после RewriteEngine. А так как есть еще nginx, который наверняка настроен на то чтобы сам отдавать статику - графику, видео, javascript, css, то править нужно его конфиг. Обычно он располагается по адресу /etc/nginx/nginx.conf (зависит от операционной системы сервера). Конфиг nginx если не ошибаюсь можно править из панели управления хостингом если стоит IPSystems. Лучше всего с этим обратится за помощью к хостеру.

Опубликовано:

У самого на др. форумах ссылки размещены на мой.

Можно добавить нужные сайты в исключения.

Опубликовано:
  • Автор

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

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

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.