Как снять защиту паролем.htaccess из подкаталога
Я защитил паролем весь мой сайт, используя .htaccess
но я хотел бы предоставить один из подкаталогов, чтобы его можно было просматривать без пароля.
Как я могу отключить защиту паролем htaccess для подкаталога? В частности, что это .htaccess
синтаксис.
Вот мой .htaccess
файл, который находится в корне моего ftp.
AuthName "Администрация сайта" AuthUserFile /dir/.htpasswd AuthGroupFile /dev/null AuthName безопасный AuthType Basic требуется имя пользователя user1 заказ разрешить, отказать разрешить от всех
6 ответов
Вам нужно создать новый .htaccess
файл в требуемом каталоге и включите Satisfy any
Директива в нем примерно так, вплоть до Apache 2.3:
# allows any user to see this directory
Satisfy Any
Синтаксис изменился в Apache 2.4, это имеет тот же эффект:
Require all granted
В дополнение к ответу 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!
Просто создайте новый .htaccess
в нужном подкаталоге с этой директивой:
Allow from all
Вы можете ограничить свой IP только с:
Allow from x.x.x.x
Смотрите: http://httpd.apache.org/docs/current/mod/mod_access_compat.html
Вот способ разрешить подкаталогу "foo" через обычную аутентификацию из основного файла.htaccess на сайте:
AuthType Basic
AuthName "Password Required"
AuthUserFile /dir/.htpasswd
Require expr %{REQUEST_URI} =~ m#^/foo/#
Require valid-user
Примечание: это работает в Apache 2.4. Я не подтвердил для более ранних версий.
Вам нужно добавить другой файл.htaccess в подкаталог, который переопределяет аутентификацию. .htaccess движется вверх, то есть смотрит в текущую папку, затем поднимается на уровень и так далее.
Если вы хотите предотвратить какую-либо конкретную директорию от аутентификации 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.