У меня есть приложение rails, которое использует Apache в качестве веб-сервера. Я хочу, чтобы он был настроен так, чтобы только хост-домен и частные IP-адреса могли получить доступ к сайту. При выполнении некоторых тестов с Apache 2.4 и Require я устанавливал следующее:
ServerName www.sitename.com
ServerAlias sitename.com
DocumentRoot /u/apps/core/current/public
<Directory "/u/apps/core/current/public">
Options FollowSymLinks
AllowOverride None
Require all denied
Require host sitename.com
Require ip 10.255
</Directory>
С этим параметром я могу получить доступ к сайту по частным IP-адресам, и все, кажется, работает. Я хотел проверить, что все другие IP-адреса будут заблокированы, поэтому я удалил строку
Require ip 10.255
В этот момент я ожидаю, что при использовании частного IP-адреса будет отказано в доступе к сайту, поэтому я ожидаю, что функциональность будет для всех общедоступных IP-адресов независимо от строки Require ip.
Проблема в том, что я не получаю отказ в доступе по частному IP после удаления строки Require. Я все еще могу видеть HTML-код сайта. Css и javascript больше не загружаются, однако я ожидаю, что ничего не загрузится вообще. Я ожидаю увидеть страницу с ошибкой браузера.
Я еще не пробовал это в работе, но общая цель - получить доступ к сайту только по имени хоста sitename.com. У меня также настроены различные перенаправления, например http -> https, и sitename.com будет перенаправлять на www.sitename.com.
Мне кажется, что эта конфигурация должна быть простой линией, которую я пропускаю, кто-нибудь знает, почему я все еще могу получить доступ к сайту на основе IP, даже если у меня только следующий набор?
Require all denied
Require host sitename.com