Вероятно, это простая проблема, но я не могу найти решение в документации.
Я хочу защитить свой веб-сайт паролем с помощью 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 в одном каталоге с контролем местоположения в других для меня не сработало.
Надеюсь, поможет.