Как снять защиту паролем .htaccess из подкаталога - PullRequest
91 голосов
/ 16 сентября 2009

У меня есть защищенный паролем весь мой сайт с использованием .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

Ответы [ 6 ]

144 голосов
/ 16 сентября 2009

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

# allows any user to see this directory
Satisfy Any

Синтаксис, измененный в Apache 2.4, имеет тот же эффект:

Require all granted
33 голосов
/ 21 августа 2011

Добавляя к ответу 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!

8 голосов
/ 09 июня 2014

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

Allow from all

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

Allow from x.x.x.x

См .: http://httpd.apache.org/docs/current/mod/mod_access_compat.html

1 голос
/ 18 декабря 2018

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

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

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

1 голос
/ 16 сентября 2009

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

0 голосов
/ 09 апреля 2018

Если вы хотите запретить какую-либо конкретную директорию из аутентификации 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.

...