Lighttpd ограничивает доступ к каталогу, но не к подкаталогу

Мне удалось настроить свой сервер lighttpd так, чтобы он защищал паролем mywebsite.com/files. Но я не хочу, чтобы подкаталоги файлов вообще были защищены паролем. Я изменил файл lighttpd.conf, чтобы сделать каталог /files защищенным паролем, и он работает, но все подкаталоги защищены паролем. Кажется, я не могу найти возможность для lighttpd остановить это.

So:

/файлы/ защищены паролем

/files/a.txt не защищен паролем

Есть ли какой-то параметр или синтаксис, который мне не хватает, чтобы разрешить это?


person Awoken    schedule 18.06.2012    source источник


Ответы (2)


То, что вы пытаетесь сделать, невозможно.

Я предполагаю, что вы используете что-то вроде этого.

$HTTP["url"] =~ "^/files" {
    url.access-deny = ("")
}

Когда вы запрещаете доступ к каталогу, он работает рекурсивно, то есть все файлы в каталоге также будут запрещены.

Честно говоря, я не могу понять, что вы пытаетесь сделать или зачем вам нужна эта функциональность.

person Kinetic    schedule 21.06.2012

Конечно, это можно сделать. Ключевым моментом является вложение конфигурации аутентификации в блок HTTP; это мощная уловка, решающая многие другие ситуации. Модуль аутентификации будет срабатывать только для точного пути, и все, что находится под ним, останется незащищенным. Вы даже можете использовать регулярное выражение, если вам нужен более детальный контроль над тем, что должно быть защищено.

$HTTP["url"] == "/files/" {
auth.require = ( "/files/" =>
(
"method" => "basic",
"realm" => "Password protected area",
"require" => "user=alice"
)
)
}

Обратите внимание, что путь к каталогу всегда заканчивается косой чертой. Это стандарт для каталогов. Если косая черта отсутствует, перенаправление будет выполнено автоматически, так что не беспокойтесь о /files.

person Zdenek    schedule 21.07.2016