Вопрос

Я защитил паролем весь свой веб-сайт, используя .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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top