Htaccess - Http-аутентификация. Почему этот блок вызывает ошибку 500? - PullRequest
4 голосов
/ 29 января 2012

Я читал то, что кажется хорошим руководством по аутентификации на основе отдыха .

Я пытаюсь использовать это как дополнение к доступу к веб-сайту cms (хранится вне доступного веб-корня).

Как и в случае, когда используемый направлен на индекс cms, я хочу использовать эту базовую форму аутентификации. Как только пользователь переходит к любому разделу, включается моя система аутентификации php по умолчанию, так что некоторые пользователи могут получить доступ только к определенным функциям в cms.

Однако я не понимаю, почему следующий блок кода, помещенный в мой файл .htaccess, приводит к тому, что весь сайт выдает ошибку 500 ...

<Files .login>
AuthType Digest
AuthNAme "Authentication Required"
AuthDigestFile /usr/home/myDomain/includes/htpasswd/admin/.htdigest
Require valid-user
</Files>

Я попробовал подобный тест с использованием базовой функции доступа, но решил, что этот подход будет немного более безопасным, как дополнение. Принимая во внимание, что я использовал программу htpasswd.exe из apache для создания файла .htpasswd, который я мог бы использовать для аутентификации базового доступа. Это работало хорошо, но я не мог понять, как применить этот тип аутентификации к индексу cms через файл .htaccess.

Я занимался созданием файла с помощью программы htdigest.exe из apache для создания файла с именем .htdigest.

Его содержимое выглядит следующим образом:

testUser:Authentication Required:cd7h62051449100elk3c463eae6251f5

Теперь, со всей этой настройкой, я следовал инструкциям в упомянутой статье, чтобы попытаться создать экземпляр, где, когда пользователь нажимает на ссылку с атрибутом href ".login" в нем, он направляется на мой cms (требуется авторизация). Это объяснение автора:

Так что нет файла .login, это просто URL, который будет срабатывать аутентификация, потому что для доступа к этому URL требуется, чтобы пользователь прошедшая проверка.

Теперь, по какой-то причине, когда я пытаюсь загрузить любую страницу на моем сайте, с этим блоком в .htaccess, я получаю ошибку 500, когда мне действительно нужно получить окно аутентификации?

Но это было, когда я запутался, поскольку я предполагаю, что этот блок будет иметь эффект только в случае, если пользователь нажмет на ссылку с ".login" href ...

Я не добавил дополнительный блок для направления пользователя на страницу индекса, когда аутентификация действительна, только этот блок и два дополнительных блока, упомянутых автором.

Кто-нибудь сможет объяснить, что вызывает эту реакцию?

Ответы [ 2 ]

6 голосов
/ 29 января 2012

Исходя из того, что говорит error_log, если вы используете Apache 2.2.x, попробуйте изменить AuthDigestFile на AuthUserFile. Вы также можете столкнуться с различиями путей к файлам в зависимости от вашей ОС; следите за любыми новыми сообщениями error_log.

3 голосов
/ 29 января 2012
  1. буквально myDomain на пути?
  2. Причина ошибки 500 записывается в файл error_log. Это единственное место во вселенной, где вы можете найти причину и объяснение.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...