我正在尝试configurationApache v2.4.7以在用户可以访问特定位置的数据库中查找。 我设法在几个特定的位置做到这一点,但是对于dynamic位置却无法做到。
所以这是适用于两个地点“mydomain.com/foo”和“mydomain.com/bar”
<Location /foo> AuthName "/foo" AuthType Digest Require valid-user AuthBasicProvider dbd AuthDBDUserRealmQuery "SELECT password FROM Users WHERE login = '%s' AND realm = '%s'" </Location> <Location /bar> AuthName "/bar" AuthType Digest Require valid-user AuthBasicProvider dbd AuthDBDUserRealmQuery "SELECT password FROM Users WHERE login = '%s' AND realm = '%s'" </Location>
这是工作正常,如果我有我的数据库中的领域“/富”或“/酒吧”的logging。
但是现在,假设我有一千个,而且有一些可以随时创build。 我尝试了以下解决scheme:
<LocationMatch /.*> AuthName "%{DOCUMENT_URI}" AuthType Digest Require valid-user AuthBasicProvider dbd AuthDBDUserRealmQuery "SELECT password FROM Users WHERE login = '%s' AND realm = '%s'" </LocationMatch>
我读( https://httpd.apache.org/docs/trunk/fr/mod/mod_authn_core.html#authname)AuthName可以dynamic设置,但我不断收到错误日志中的以下消息,这意味着variables没有被实际请求的位置dynamicreplace。
user `firstname.lastname' in realm `%{DOCUMENT_URI}' not found:
我将不胜感激一些帮助find我做错了什么,或find另一种方式。
您期望的function将在Apache 2.5中发布 ,并且在Apache 2.4中尚不可用。 在Apache <= 2.4中,只能为AuthName使用纯string。