Сценарий
Я просто пытаюсь разрешить один файл php через папку паролей .htaccess.
Попытки пока
Вопрос
Что мне не хватает? Я знаю, что раньше у меня были такие мелочи, но я просто этого не вижу ...
файл .htaccess
AuthUserFile /some/folder/.htpasswd
AuthType Basic
AuthName "Password Required"
Require user personA personB
Order Deny,Allow
Deny from All
#not working
<Files "./subfolder/my-special-file.php">
Allow from All
</Files>
Satisfy Any
Веб-страница 401
Неавторизованный
Этот сервер не смог проверить, есть ли у вас право доступа к запрошенному документу. Либо вы ввели неправильные учетные данные (например, неверный пароль), либо ваш браузер не понимает, как предоставить необходимые учетные данные.
Сервер Apache / 2.4.7 (Ubuntu) на порту x.x 80
В Контроль доступа изменился в Apache 2.4, который вы используете, и эти изменения, вероятно, лучше всего объясняются в Обновление до 2.4 с 2.2. Короче из mod_access_compat:
Совместимость: Доступен в Apache HTTP Server 2.3 в качестве модуля совместимости с предыдущими версиями Apache httpd 2.x. Директивы, предоставляемые этим модулем, устарели в результате нового рефакторинга authz. Посмотри пожалуйста mod_authz_host
Давайте реорганизуем вашу конфигурацию на основе mod_authz_core и mod_authz_host:
<Directory "/var/www/somefolder">
AuthType Basic
AuthName "Password Required"
AuthUserFile "/some/folder/.htpasswd"
Require user personA personB
<Files "my-special-file.php">
Require all granted
</Files>
</Directory>
<Directory>
контекст можно заменить на .htaccess
, хотя не рекомендуется.В <Files "my-special-file.php">
наследуется всеми вложенными папками, т.е.
my-special-file.php
, subfolder/my-special-file.php
и т.п. Если вы хотите, чтобы это применялось только к subfolder/my-special-file.php
, вам понадобится:
<Directory "/var/www/somefolder">
AuthType Basic
AuthName "Password Required"
AuthUserFile "/path/to/.htpasswd"
Require user personA personB
<Directory "/var/www/somefolder/subfolder">
<Files "my-special-file.php">
Require all granted
</Files>
</Directory>
</Directory>