Назад | Перейти на главную страницу

В Apache, как мне настроить защиту паролем?

Я пытаюсь настроить сервер с помощью Apache. В файл conf я вставил код:

<Directory />
    Options FollowSymLinks
    AllowOverride AuthConfig
    AuthType Basic
    AuthName "Restricted Files"
    AuthBasicProvider file
    AuthUserFile C:\...\serverpass.txt
    Require user Admin
</Directory>

Чтобы попытаться заставить Apache потребовать пароль. Я создал имя пользователя и пароль с помощью htpasswd -c. Когда я попал на localhost, он не запрашивает у меня имя пользователя и пароль?

Вы перезапустили веб-сервер apache ПОСЛЕ внесения этих изменений?

Кроме того, проверяли ли вы наличие конфликтующих директив в httpd.conf и всех его включаемых файлах. Помните, что последняя обнаруженная переопределяющая директива (и более конкретные директивы) побеждает в игре и используется.

/ не путь в Windows, поэтому <Directory /> ничего не будет делать.

Рассмотрите возможность использования <Location /> или <Directory c:/path/to/webroot/>?

Попробуйте использовать "/" в качестве разделителя пути, а не типичный для Windows "\".

Как это говорит в документах Apache:

Директивы, которые принимают имена файлов в качестве аргументов, должны использовать имена файлов Windows, а не Unix. Однако, поскольку Apache может интерпретировать обратную косую черту как последовательность «escape-символа», вы должны постоянно использовать косую черту в именах путей, а не обратную косую черту. Можно использовать буквы дисков; если он опущен, диск директивы SystemRoot (или параметра командной строки -d) становится диском по умолчанию.

<Directory />

/ Здесь следует заменить на конкретный каталог, в котором вы ищете аутентификацию. Измените его и перезапустите веб-сервер.

После этого он работает.