CentOS Apache: базовая аутентификация, возвращающая 403 вместо 401
У меня есть три каталога в /var/www/html, один из них имеет.htacces со следующим:
Order Allow, Deny
Allow from all
AuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName 'lalalal'
AuthType Basic
Require user lala
При отправке запроса в этот каталог сервер возвращает 403 вместо 401.
При запросе других каталогов сервер возвращает 200.
Также интересно то, что при проверке страницы с информацией о сервере нет ни одной строки, ссылающейся ни на защищенный каталог, ни на его родные элементы.
редактировать
Журнал ошибок показывает:
"В доступе отказано: /var/www/html/drugi/.htaccess pcfg_openfile: невозможно проверить файл htaccess, убедитесь, что он доступен для чтения"
Файл.htaccess имеет 644 разрешения.
2 ответа
Order Allow, Deny
Allow from all
Они не требуются, если вы используете HTTP-аутентификацию, и вы можете избавиться от них. (И Порядок нарушается, если после запятой есть пробел.)
Кстати, это хорошая идея, чтобы сохранить ваш файл htpasswd вне каталога веб-документов.
Поскольку вы обновили свой вопрос с дополнительной информацией, я бы сказал, что вы также должны проверить разрешения в каталоге с помощью ls -alZ
проверить как разрешения Unix, так и контексты SELinux.
403 предполагает наличие ошибки прав доступа. Проверьте, что apache
у пользователя есть разрешение на чтение файла.htaccess, то есть у него есть разрешение на просмотр в дереве каталогов drugi, поэтому r-x
для других (если он не принадлежит apache) или r-x
для владельца / группы, если он принадлежит apache или его группе.