Назад | Перейти на главную страницу

Местоположение и доступ к каталогу Apache

У меня 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>