Как удалить .htaccess защиту паролем из подкаталога

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

Как отключить защиту htaccess для подкаталога? В частности, что такое синтаксис .htaccess.

Вот мой .htaccess файл, который помещается в корень моего ftp

AuthName "Site Administratrion"
AuthUserFile /dir/.htpasswd
AuthGroupFile /dev/null

AuthName secure
AuthType Basic
require user username1
order allow,deny
allow from all

Ответ 1

Вам нужно создать новый файл .htaccess в требуемом каталоге и включить в него директиву Satisfy any так:

# allows any user to see this directory
Satisfy Any

Обратите внимание, что синтаксис, измененный в Apache 2.4, должен иметь тот же эффект

Require all granted

Ответ 2

Добавление в ответ RageZ, я использовал это в директивах сервера:

<Directory /var/www/protected/>
     AuthType Basic
     AuthName "Production"
     AuthUserFile /path/to/.htpasswd
     Require valid-user
</Directory>

<Directory /var/www/protected/unprotected>
     Satisfy Any
</Directory>

Высокий. Спасибо RageZ!

Ответ 3

Просто создайте новый .htaccess в нужном подкаталоге с этой директивой:

Allow from all

Вы можете ограничить свой IP только с помощью

Allow from x.x.x.x

Смотрите: http://httpd.apache.org/docs/current/mod/mod_access_compat.html

Ответ 4

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

Ответ 5

Если вы хотите предотвратить какую-либо конкретную директорию от аутентификации htaccess, вы можете использовать следующий код в вашем файле htaccess вверху.

AuthType Basic AuthName "Enter Pass" AuthUserFile/home/public_html/.htpasswd/*PATH TO YOUR.htpasswd FILE*/Require valid-user SetEnvIf Request_URI "(/DIRECTORY_NAME/)$" allow Order allow,deny Allow from env=allow

Также, если вы хотите предотвратить несколько каталогов, добавьте

SetEnvIf Request_URI "(/DIRECTORY_NAME/)$" allow

столько раз, сколько каталогов, вы хотите удалить из предотвращения htaccess.

Ответ 6

Вот способ разрешить подкаталогу "foo" через обычную аутентификацию из основного файла.htaccess на сайте:

AuthType Basic
AuthName "Password Required"
AuthUserFile /dir/.htpasswd
Require expr %{REQUEST_URI} =~ m#^/foo/#
Require valid-user

Примечание: это работает в Apache 2.4. Я не подтвердил для более ранних версий.