Разрешить горячую ссылку, но перенаправлять, когда я сам являюсь своим реферером!


Я хочу, используя htaccess, разрешить горячую ссылку, НО если кто-то просматривает изображение на моем сайте, я хочу перенаправить их на "размещенную" версию изображения, где я показываю свою навигацию и т. Д.

Таким образом, по сути, ни одна горячая ссылка с внешнего сайта не будет затронута, но если кто-то просматривает изображение на моем сервере напрямую, т. е. www.domain.com/image.jpg это перенаправит. Я также хочу убедиться, что я также могу правильно отображать изображения с моего сайта.

Может ли кто-нибудь помочь?

РЕДАКТИРОВАТЬ: Вот код, который у меня сейчас есть

RewriteCond %{REQUEST_FILENAME} \.jpg$
RewriteCond %{HTTP_REFERER} =""
RewriteRule ^userpics/covers/(.*).jpg$ /view/$1.html [R=301]

RewriteRule ^view/(.*).html$ /view.html?img=$1 [L]

Спасибо

Author: Chris, 2010-02-28

3 answers

Использовать .htaccess

RewriteEngine on
RewriteCond %{REQUEST_URI} \.(jpg|png|gif)$
RewriteCond %{HTTP_REFERER} ^https?://yoursite\.com/.*$ [NC]
RewriteRule ([^/]+)$ url_to_script?img=$1

Вы могли бы упростить

RewriteCond %{HTTP_REFERER} ^https?://yoursite\.com/.*$ [NC]

Просто

RewriteCond %{HTTP_REFERER} yoursite\.com [NC]

И правило может быть записано как

 RewriteRule (.*) url_to_script?img=$1

Если вам нужно включить путь к изображению в свой параметр.

 2
Author: jasonbar, 2010-02-28 20:49:33

Вы должны использовать mod_rewrite, если HTTP_REFERRER пуст, а затем перенаправить на /image-with-nav.php?image=$1
Попробуйте что-нибудь вроде этого
RewriteEngine on

RewriteCond %{HTTP_REFERER} ^$

.* image-with-nav.php?image=$1 [L]

 0
Author: DCC, 2010-02-28 20:17:57

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

RewriteCond %{REQUEST_FILENAME} \.(jpg|png|gif)$
RewriteCond %{HTTP_REFERER} =""
RewriteRule (.*) http://someurl.com [R=301]
 0
Author: voodoo555, 2010-02-28 20:19:50