2013-10-08 4 views
1

У меня есть веб-сервер, который я хочу, чтобы каждый мог получить доступ, кроме одного хоста. Я изменил конф (/etc/httpd/conf/httpd.conf) и добавил следующее:httpd - deny конкретных хостов

<Location /> 
    Order Allow,Deny 
    Deny from www.HOST.com 
    Allow from all 
</Location> 

Это, к сожалению, не работает. Я попытался переключиться на Order Deny,Allow, поместить Allow from all до deny, но все равно он не работает.

Когда я просматриваю www.HOST.com, он все еще может получать .js файлы и изображения с моего веб-сервера. Возможно, проверка должна быть у реферера? (Я не знаю, как это сделать).

Любая помощь будет оценена по достоинству.

С уважением, Adam.

+0

Что значит «перейдите на сайт www.HOST.com»? Эта функция предназначена для использования при просмотре «с» конкретного клиента (поэтому он говорит «Отклонить от»). NB В некоторых старых версиях Apache параметр 'Deny from' должен быть IP-адресом, а не именем хоста. –

ответ

0

Это не то, что Deny. Если у вас есть Deny from www.host.com, это означает, что кто-то с браузером на самом IP-адресе, на который «www.host.com» включен, не сможет получить доступ к сайту. То, о чем вы говорите, - это кто-то, которого ссылают с определенного сайта. К сожалению, единственный способ предотвратить это - проверить поле «referer» запроса, и это может быть подделано, поэтому это не является надежным способом предотвратить это. Вы можете сделать это, добавив в свой файл htaccess такие правила, как:

RewriteEngine On 
RewriteCond %{HTTP_REFERER} ^https?://www.HOST.com [NC] 
RewriteRule^- [L,F] 
Смежные вопросы