Разрешить горячую ссылку, но перенаправлять, когда я сам являюсь своим реферером!
Я хочу, используя 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]
Спасибо
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
Если вам нужно включить путь к изображению в свой параметр.
Вы должны использовать mod_rewrite, если HTTP_REFERRER пуст, а затем перенаправить на /image-with-nav.php?image=$1
Попробуйте что-нибудь вроде этогоRewriteEngine on
RewriteCond %{HTTP_REFERER} ^$
.* image-with-nav.php?image=$1 [L]
Теперь вам нужно проверить ссылку, потому что URL-адрес всегда является URL-адресом вашего изображения, поскольку это http-запрос. Вы могли бы пойти с чем-то вроде этого:
RewriteCond %{REQUEST_FILENAME} \.(jpg|png|gif)$
RewriteCond %{HTTP_REFERER} =""
RewriteRule (.*) http://someurl.com [R=301]