2013-11-15 2 views
1

Я использую следующий код, чтобы попытаться ограничить доступ к сайту, но он просто не позволяет мне подключиться из домена реферала..htaccess deny from domain

<Limit GET> 
order deny,allow 
deny from all 
allow from studiorenegade.com 
</limit> 

RewriteEngine On 

RewriteRule ^(_app) - [F,L] 
RewriteRule ^(_config) - [F,L] 
RewriteRule ^(_content) - [F,L] 
RewriteRule ^(.*).yml$ - [F,L] 
RewriteRule ^(.*).yaml$ - [F,L] 
RewriteRule ^(.*).html$ - [F,L] 
RewriteRule ^(.*/)?\.git+ - [F,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php [QSA,L] 

AuthType Basic 
AuthName "restricted area" 
AuthUserFile /var/www/{path to .htpassword} 
require valid-user 

Это все кажется настолько простым, что я не могу правильно настроить разрешение. Спасибо!

ответ

1

Это как:

allow from studiorenegade.com 

позволяет устанавливать соединение непосредственно с сервера на studiorenegade.com, а не людей, которые просмотрены на сайт и кликнули по ссылке (которая будет Allow от). Вы по существу отказали в доступе от всех, кроме тех, кто использует Serer, на котором находится studiorenegade.com.

Вы, вероятно, хотите, чтобы избавиться от этого и добавить вместо этого:

RewriteCond %{HTTP_REFERER} !^https?://(www\.)?studiorenegade\.com [NC] 
RewriteCond %{HTTP_REFERER} !^https?://hostname.of.your.server.com [NC] 
RewriteRule^- [L,F] 

прямо под RewriteEngine On линии.

Это отправляет любой запрос, поле заголовка которого не соответствует «studiorenegade.com». Однако это поле может быть подделано и не является гарантией того, что люди не смогут получить доступ к вашему сайту из других мест.