Apache 2.2,根据客户端提供的 HTTP 身份验证凭据更改 DocumentRoot

Apache 2.2,根据客户端提供的 HTTP 身份验证凭据更改 DocumentRoot

这可能吗?

假设我有一台服务器 devbox.local,它有多个 HTTP 身份验证用户:alan、bill、carl。我想做的是告诉 Apache 根据当时登录的用户使用不同的 DocumentRoot。因此,用户 alan 可能会看到 /var/www/html 中的文档根目录,bill 可能会看到 /home/bill/public_html,而 carl 可能会看到其他目录。

我知道你们中的一些人会直接跳到“使用 mod_userdir 来实现这一点”的回答,但这会创建以下形式的 URLhttp://devbox.local/~bill/whatever——这不是我们想要的。(每个用户都将在单独的 Web 应用程序副本上工作,而这个副本确实不喜欢不在域的根目录中。相信我,我们已经尝试过了。)

我也尽量避免使用子域名,除非没有其他选择,因为如果(当)我们稍后移动东西时,我真的不想在我们的 vhosts/DNS/hosts 文件上乱搞。

答案1

mod_rewrite可能就是您正在寻找的。

查看有关如何使用 %{REMOTE_USER} 变量重写 URL 的文档。

相关内容