Блокировать прямые IP-соединения с веб-сервером Apache [дубликат]

На этот вопрос уже есть ответ здесь:

Мне нужно выяснить, как заблокировать прямой IP-доступ к моему веб-сайту.

Пример: я хочу, чтобы когда люди вводили мой IP-адрес 1.2.3.4 в браузере, он не работал, но когда они набирали www.example.com , он работает.

Я использую Apache 2.4.9 , а мой веб-сайт работает с использованием WampServer .

Я пробовал другие решения некоторых старых вопросов здесь, но ни одно из них не помогло мне. Я пробовал вставить информацию о виртуальном хосте в vhosts.conf, но у меня не получилось сделать это правильно, и я попытался переписать материал с помощью файла htaccess, но это тоже не сработало.

1
задан 29 June 2016 в 06:43
2 ответа

Один из способов сделать это - установить условие перезаписи в глобальном контексте сервера, которое запрещает запросы на основе IP, требуя заголовка HTTP, подобного пример, показанный ниже:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{REQUEST_URI} !^/error [NC]
RewriteRule ^.(.*) - [L,F]

ПРИМЕЧАНИЕ. В этом примере необходимо включить mod_rewrite .

ПРИМЕЧАНИЕ ТАКЖЕ: если у вас несколько виртуальных хостов, вы можете изменить RewriteCond , чтобы проверить в более широком смысле или используйте несколько операторов RewriteCond для размещения различных доменов.

Альтернативная конфигурация:

<If req('Host') != 'www.example.com'">
  <Location "/">
    Require all denied
  </Location>
</If>
0
ответ дан 3 December 2019 в 20:36

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

2
ответ дан 3 December 2019 в 20:36

Теги

Похожие вопросы