Проблема с защитой каталога с использованием .htaccess
Вопрос
Я создал файлы .htaccess и .htpasswd и сохранил их в папке, которую я хочу защитить, и когда я перешел на эту папку, меня попросили имени пользователя и Passowrd (сохраненный в файле .htpasswd) после входа в имя пользователя и Пароль, я получил 500 внутренней ошибки сервера. Я использовал файлы как на локальном хосте (Windows), так и на веб -сервере (я думаю, Linux) дал один и тот же упомянутый результат.
Это мой файл .htaccess:
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
AuthUserFile /.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
order deny,allow
Решение
Я сомневаюсь, что ты .htpasswd
Файл действительно расположен в самом корне файловой системы сервера вместе с /bin
, /usr
, /home
, и другие (а не внутри части файловой системы обслуживали веб -браузеры).
Согласно документации Apache (1, 2), AuthUserFile
Ожидается путь файла (как будто вы были в серверном корректе, обычно /usr/apache
или аналогично, и попытка найти файл из оболочки UNIX). Это не может быть URL, абсолютный или относительный. Исправьте свой .htpasswd
Файл соответственно.
Обратите внимание, что, если возможно, вы не должны ставить .htpasswd
Файл внутри а public_html
или же htdocs
Папка, потому что любая ошибка конфигурации может не только разрешить несанкционированный доступ к файлам, которые вы хотите защитить, но и авторизованные имена пользователей и хэшированные пароли.
Другие советы
Используйте абсолютный путь хостинга, например:
/home/content/14/5267714/html/.htpasswd