Как удалить защиту паролем .htaccess из подкаталога
-
07-07-2019 - |
Вопрос
Я защитил паролем весь свой веб-сайт, используя .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
Решение
Вам необходимо создать новый файл .htaccess
в необходимом каталоге и включить в него директиву Satisfy any
примерно так, до версии Apache 2.3:
# allows any user to see this directory
Satisfy Any
Синтаксис, измененный в Apache 2.4, имеет тот же эффект:
Require all granted
Другие советы
Добавляя к ответу Рагеза, я использовал это в Директивах сервера:
<Directory /var/www/protected/>
AuthType Basic
AuthName "Production"
AuthUserFile /path/to/.htpasswd
Require valid-user
</Directory>
<Directory /var/www/protected/unprotected>
Satisfy Any
</Directory>
Потрясающе.Спасибо, РагеЗ!
Просто создайте новый .htaccess
в нужном подкаталоге с помощью этой директивы:
Разрешить от всех
Вы можете ограничить свой IP только с помощью:
Разрешить из x.x.x.x
См .: http://httpd.apache.org/docs/current/ мод / mod_access_compat.html р>
Вам нужно добавить еще один файл .htaccess в подкаталог, который отменяет аутентификацию. .htaccess идет вверх, то есть просматривает текущую папку, затем поднимается на уровень и т. д.
Вот способ разрешить подкаталог " foo " через базовую аутентификацию из основного файла .htaccess на сайте:
AuthType Basic
AuthName "Password Required"
AuthUserFile /dir/.htpasswd
Require expr %{REQUEST_URI} =~ m#^/foo/#
Require valid-user
Примечание: это работает в Apache 2.4. Я не подтвердил более ранние версии.
Если вы хотите запретить какую-либо конкретную директорию аутентификации htaccess, вы можете использовать следующий код в файле htaccess вверху.
AuthType Basic
AuthName " Enter Pass "
AuthUserFile /home/public_html/.htpasswd / * ПУТЬ К ВАШЕМУ ФАЙЛУ .htpasswd * /
Требуется действительный пользователь
SetEnvIf Request_URI " (/ DIRECTORY_NAME /) $ " разрешать
Заказать разрешить, отказать
Разрешить из env = allow
Кроме того, если вы хотите предотвратить несколько каталогов, то добавить
SetEnvIf Request_URI " (/ DIRECTORY_NAME /) $ " разрешить код>
столько раз, сколько каталогов вы хотите удалить из предотвращения htaccess. Р>