В этом ответе предполагается, что вы используете Apache 2.1 или более позднюю версию:
С модулем mod_authz_host
вы можете осуществлять контроль доступа по имени хоста в .htaccess или в разделе или ваш файл httpd.conf, например:
<Location />
Allow from apache.org
Allow from .net example.edu
</Location>
Обратите внимание, что здесь вы можете использовать частичные доменные имена, поэтому в этом примере www.apache.org будет разрешен доступ.
Для обеспечениячто у вас установлена mod_authz_host
, проверьте строку, похожую на следующую в вашем httpd.conf:
LoadModule authz_host_module modules/mod_authz_host.so
Недостатком этого является то, что он будет выполнять обратный поиск для каждого доступа, который может илиможет не быть проблемой производительности для вас.
Другой вариант - ограничение с помощью User-Agent.Однако это ненадежный метод, потому что User-Agent
может быть очень легко подделан.Но в зависимости от вашего уровня паранойи это может быть оправдано: D
Чтобы ограничиться User-Agent
, вам необходимо убедиться, что вы загружаете модуль mod_setenvif
в дополнение к модулю mod_authz_host
,Проверьте строку, аналогичную следующей в вашем httpd.conf:
LoadModule setenvif_module modules/mod_setenvif.so
Затем вы можете настроить управление доступом в , или .htaccess следующим образом:
SetEnvIf User-Agent ^facebookexternalhit/1\.1 let_me_in
<Location />
Order Deny,Allow
Deny from all
Allow from env=let_me_in
</Location>