У меня Apache 2.2 работает на CentOS 6.4
В каталоге / есть приложение и папка, в которой находятся файлы, скажем, / public.
Мне нужно разрешить доступ к каталогу / для ip1, ip2, ip3 и разрешить доступ к папке / public для ip1, ip2, ip3, ip4, ip5. И ip5 и ip4 не имеют доступа к /.
Я пробовал сделать это с такой конфигурацией:
<Location / >
Require ip ip1 ip2 ip3
</Location>
Alias /public /some/path
<Directory /some/path>
Options +Indexes
Require ip ip1 ip2 ip3 ip4 ip5
</Directory>
Но ip4 и ip5 не могут получить доступ к папке / public.
Как я могу предоставить доступ к этому IP-адресу?
UPD1
Если я использую
<Location /some/path>
Require ip ip1 ...
</Location>
вместо использования псевдонима и каталога у меня есть доступ, но в браузере нет списка файлов. Кажется, я должен использовать вместо этого, но тогда у меня нет доступа к этому каталогу.
Вы определяете / public как Псевдоним URL не Каталог. Итак, конфигурация не работает, потому что Apache не находит / public как Каталог.
Попробуйте изменить
<Directory /public>
Options +Indexes
Require ip ip1, ip2, ip3, ip4, ip5
</Directory>
к
<Location /public>
Require ip ip1, ip2, ip3, ip4, ip5
</Location>
Примечание. Директива Option не работает внутри директивы Location.
В качестве альтернативной конфигурации вы можете указать / some / path вместо / public в директиве Directory
<Directory /some/path>
Options +Indexes
Require ip ip1, ip2, ip3, ip4, ip5
</Directory>
ОБНОВИТЬ
Вы должны установить ограничение IP в Location
директива, потому что Location
сольется после Directory
(видеть документация). Обновленная конфигурация
Alias /public /some/path
<Location /public>
Require ip ip1 ip2 ip3 ip4 ip5
</Location>
<Directory /some/path>
Options +Indexes
</Directory>