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

apache2 config - переменная не вычисляется в строке

Я хочу, чтобы у разных маршрутов был свой пароль. Так что у меня есть LocationMatch:

<LocationMatch /shiny/(?<appname>.*)>
       AuthType Basic
       AuthName "Enter your login name and password"
       AuthUserFile "/path/to/directory/with/passwords/.%{env:MATCH_APPNAME}.pwd"
       Require valid-user
</LocationMatch>

Но я получаю 500 Internal Server Error, потому что %{env:MATCH_APPNAME} не оценивается:

[Thu Sep 20 12:11:21.678370 2018] [authn_file:error] [pid 16932:tid 140332725917440] (2)No such file or directory: [client xxx.xxx.xxx.xxx:52274] AH01620: Could not open password file: /path/to/directory/with/passwords/.%{env:MATCH_APPNAME}.pwd

Я следую официальным инструкциям Вот. Что я делаю не так? Спасибо.

версия apache2: apache2 (OpenRC) 0.34.11 (Gentoo Linux)

Как указано в цитируемых вами документах, Apache поддерживает этот стиль ссылок на регулярные выражения в выражения (документы), но AuthUserFile ожидает Путь файла в качестве аргумента - таким образом воспринимая вашу строку буквально.

Увидеть Если директивы, чтобы увидеть, как указана директива, поддерживающая выражение. На странице документации о выражениях есть список поддерживающих их директив.