例如,我有Web服务器的根目录 / var / www / 。和用户的主目录: / var / www / testuser / 。我还设置了基本授权,因此有一个用户名为testuser的用户已成功授权。如何仅通过Web服务器检查测试用户是否正在浏览其主目录?这是我所走的距离:
# Getting "testuser" out of "/testuser/echo.php"
SetEnvIf Request_URI ^/(.*)/ URI_HOME=$1
# Getting base64 encoded part out of Authorization header
SetEnvIf Authorization "^Basic (.*)$" X_HTTP_AUTHORIZATION=$1
# Converting base64 part to plain text, extracting username and comparing it with home directory
SetEnvIfExpr "tolower(unbase64(%{ENV:X_HTTP_AUTHORIZATION})) == %{ENV:URI_HOME}" USER_IS_IN_HOME_DIR
主要问题是 SetEnvIf 工作时,舞台上没有设置 REMOTE_USER 。因此,我绝对必须从请求中解析 Authorization 标头。我几乎做到了,但是我必须逐列删去一部分才能使比较正确。
我该怎么办?
答案 0 :(得分:0)
以下似乎有效:
begin
有什么想法可以改进它吗?