2012-04-19 4 views
4

Я использую Apache и скажу, что есть файл на "images/sample.jpg".(htaccess) Как сделать файл доступным только для хост-сервера и предотвратить прямой доступ?

  • С .htaccess, как я могу сделать это появляться на сайте и затем предотвратить прямой доступ URL (, например, прямой URL, как «http://www.abc .com/images/sample.jpg «)?

  • Если возможно, я также хочу, чтобы решение повлияло на все подпапки под файлом «.htaccess».


Дополнительное примечание:
После один день получения ответов ниже, я нашел все решения логически работать, но проблема с Firefox. Я имею в виду, что приведенные ниже ответы дают решение при тестировании в каждом браузере, но не в Firefox.

+0

Вы пытались использовать @pyrate anwer? – anubhava

+0

@anubhava Пожалуйста, посмотрите мой комментарий ниже него. –

+0

Ваш RewriteCond должен быть: 'RewriteCond% {HTTP_REFERER}!^Http: // (www \.)? Localhost [NC]' – anubhava

ответ

1

Существует много больше происходит, чтобы предотвратить хотлинкинг изображений, чем .htaccess правила. Однако, основой того, что вы хотите в вашем Htaccess для предотвращения хотлинкинга изображения является:

RewriteCond %{HTTP_REFERER} !^http://(www\.)?example.com/.*$  [NC] 
RewriteRule .*\.(jpg|jpeg|png|bmp)$ - [F,NC] 

Apache ReWrite guide

+0

Пожалуйста, перейдите к следующей теме с более понятным объяснением http://stackoverflow.com/questions/10236717/htaccess-how-to-prevent-a-file-from-direct-url-access –

+0

Все решения (включая этот) нормально работать, но проблема с Firefox. –

3

Это называется «hotlinking». Я предлагаю сначала прочитать его, поскольку для него есть нечто большее, чем просто строка или код в вашем .htaccess. Эта страница является достойной: http://altlab.com/htaccess_tutorial.html

RewriteEngine On 
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC] 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://i.imgur.com/qX4w7.gif [L] 

Это покажет изображение из Imgur, однако иногда я хотел пойти дальше и провести альтернативные образы из моего хозяина - если это конкурент, например, вы можете иметь много удовольствия;)

+0

Прошу, я не так понимаю о «imgur». О чем это? Нужно ли использовать эту линию? –

+0

Вот почему я разместил ссылку на сайт (хотя многие другие могут быть найдены через Google). Это всего лишь пример - imgur - это просто веб-сайт для размещения изображений. Вы можете поместить туда любой URL-адрес, даже свое собственное изображение, но вам нужно иметь другое правило, чтобы остановить «рекурсию». – LeonardChallis

+0

Я тестирую свою веб-папку «localhost/example», и она не работает так, как я хочу.Я имею в виду, что все изображения на моем сайте показывают «imgur warning image». –

1

Используйте этот кусок кода, чтобы предотвратить хотлинкинга:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com.*$ [NC] 
RewriteRule \.(gif|jpg)$ - [F] 

Это может помочь вам: http://www.selfseo.com/story-18469.php

+0

@ 4lvin Попробуйте следующее: 'RewriteCond% {HTTP_REFERER}!^http: // (www \.)? localhost /.*$ [NC]' Вы используете обратную косую черту после локального хоста. –

+0

@ 4lvin Я что-то изменил в коде выше, тестировал на своем localhost: теперь он работает. Я пропустил вторую строчку. –

+0

Пожалуйста, перейдите к моей следующей теме с более понятным объяснением http://stackoverflow.com/questions/10236717/htaccess-how-to-prevent-a-file-from-direct-url-access –

1

N ВЗ полностью уверен, но это должно вести вас:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC] 
RewriteRule (images/sample.jpg)$ - [R=404,L] 
+0

Пожалуйста, перейдите к моей следующей теме с более ясным объяснением http://stackoverflow.com/questions/10236717/htaccess-how-to-prevent-a-file-from-direct-url-access –

+0

Все решения (включая этот) нормально работать, но проблема с Firefox. –

1

на основе ваших комментариев выглядит это то, что вам нужно:

RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost/ [NC] 
RewriteRule \.(jpe?g|gif|bmp|png)$ - [F,NC] 

Я тестировал его на своем локальном хосте, и, похоже, он работает нормально.

+0

Пожалуйста, перейдите к моей следующей теме с более понятным объяснением http://stackoverflow.com/questions/10236717/htaccess-how-to-prevent-a-file-from-direct-url-access –

+0

Все решения (включая этот) нормально работать, но проблема с Firefox. –

 Смежные вопросы

  • Нет связанных вопросов^_^