apache rewritecond 在动态IP地址

apache rewritecond 在动态IP地址

我想通过 IP 地址限制对特定页面集的访问(只有 2 或 3 个人可以访问此区域)。不幸的是,其中至少有一个是来自 ISP 的动态分配的 IP 地址。我考虑过的一个非常冗长的选项是一种自定义 dyndns 类型的设置,客户端将注册其 IP 更改,然后重写 apache 配置文件并重新加载它。假设我们设置了一个 dyndns 帐户,我们总是可以从那里获取他们的当前 IP 地址并定期更新/重新加载 apache 配置文件。但有没有更优雅的方法?

以下是当前线路(使用虚拟 IP):

RewriteCond %{REMOTE_ADDR} !^12\.23\.34\.45

我也尝试过:

RewriteCond %{REMOTE_HOST} !^name\.dtdns\.net

无论如何,这都是一个很小的尝试 - 显然,他们的 IP 地址永远不会解析回该名称。我无法访问此服务器上的 mod_perl,因此无法在那里执行任何操作。还有其他方法吗?

答案1

您使用的是基于 IP 的身份验证。这没什么问题,我已经用过它了,尽管总是与其他身份验证方法结合使用。但如果 IP 地址发生变化,我认为没有任何捷径可以像您描述的那样在地址更改时更新 Apache 配置。

另一种方法是使用用户/密码身份验证,或者使用基于客户端证书的 SSL 身份验证。

相关内容