Apache AuthType Basic 适用于本地网络,其余网络无需身份验证

Apache AuthType Basic 适用于本地网络,其余网络无需身份验证

我试图找到一个解决方案,但我的情况与大多数配置相反,而且很难找到例子。

我有一个 php 应用程序,它首先查找典型的 HTTP 身份验证,如果失败(未找到 REMOTE_USER 变量),它会显示一个登录屏幕以针对本地用户文件进行身份验证。我无法修改此 php 应用程序。

我需要配置 apache 的身份验证以匹配此场景:如果远程 IP 与我们的网络 IP 范围匹配(假设为 192.168.0),则需要 AuthType Basic 才能访问该页面。如果远程 IP 不在我们的范围内(互联网的其余部分),则跳过 AuthType Basic 并直接显示该页面,因此 php 应用程序将找不到 REMOTE_USER 变量,它将显示自己的登录页面。

这可能吗?我发现很多例子都做了完全相反的事情(如果你不在公司网络上,则要求 Apache Auth),但我没有看到任何符合我的情况的例子。

我正在修改这个例子:

<Directory /home/www/site1/private>
  AuthUserFile /home/www/site1-passwd
  AuthType Basic
  AuthName MySite
  Require valid-user
  Order allow,deny
  Allow from 192.168.0
  Satisfy any
</Directory>

如果指定“允许来自 !(172.17.10)”,那就太好了,但我认为这是不可能的。所以我很确定我需要尝试使用 Allow、Deny 和 Order 指令,但我仍然没有找到解决方案。

有谁遇到过类似的情况?谢谢!

答案1

你能试试这个吗?

Order allow,deny
 Deny from 192.168.0
 Allow from All
 Satisfy any

相关内容