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

Аутентификация Apache: разрешить публичный доступ к подкаталогу

Вероятно, это простая проблема, но я не могу найти решение в документации.

Я хочу защитить свой веб-сайт паролем с помощью BASIC-аутентификации. Но я хочу, чтобы подкаталог не был защищен:

http://mysite.com/ -> BASIC protected
http://mysite.com/somedir -> BASIC protected
http://mysite.com/someotherdir -> BASIC protected
http://mysite.com/public -> not protected

У меня нет проблем с защитой всего сайта, но я не знаю, как «снять защиту» с одного каталога. Сайт размещен на общем хосте, поэтому у меня есть доступ только к файлам .htaccess для настройки.

Есть ли директива, запрещающая аутентификацию?

Спасибо за помощь ...

Не должно быть проблем с .htaccess, в зависимости от того, что разрешил хост.

Вы можете попробовать поместить .htaccess в подпапку со следующим, хотя для каталогов, в которых он находится, необходимо включить переопределения.

 Allow From All
 Satisfy Any

Хорошо, для пути server.com/private/public:

server.com/private/.htaccess

AuthType Basic
AuthName "Private, keep out."
Require...

server.com/private/public/.htaccess

Allow From All
Satisfy Any

Ключевым моментом здесь является «Удовлетворение любого», которое объединяет требования восходящего потока вместе. По умолчанию установлено «Удовлетворить все».

Я считаю, что это могло бы сделать это:

# put the global auth stuff here
...

# put the override here
<Location /public>
Allow from All
Satisfy Any
</Location>

Мне удалось решить это следующим образом:

<Directory "/path/to/maindirectory">
[... auth stuff ... ]
</Directory>

<Directory "/path/to/mysubdirectory">
 Allow from All
 Satisfy Any
</Directory>

НЕ используйте Locations, потому что они чувствительны к регистру и не влияют на фактический доступ к папке, а только через URL.

Так, например, если я напишу

http:/mywebsite/STUFF

или

http://mywebsite/stuff

или

http://mywebsite/StUfF

это другое для управления расположением, даже если вызываемый физический каталог такой же !!!

Короче говоря, вы проверяете доступ к каталогу "вещи", и я могу получить его в другом регистре.

Кроме того, использование файла .htaccess в одном каталоге с контролем местоположения в других для меня не сработало.

Надеюсь, поможет.