无法让 setenv 在 .htaccess 中工作

发布于 2024-09-19 02:02:33 字数 916 浏览 2 评论 0原文

SetEnv 似乎不适合我。我在我的.htaccess中尝试了这个:

SetEnvIf Remote_Addr ^192\.168\.0$ ip_ok
<IfDefine !ip_ok>
  AuthName "Guest Login"
  AuthType Basic
  AuthUserFile /opt/lampp/lib/ok_users/guests.users
  require valid-user
</IfDefine>

即使我的ip是192.168.0.10并且服务器(linux 1.6.8a的centos5 / xampp)是192.168.0.1,我也必须提供用户名/密码凭证

所以我尝试了这个:

SetEnv ip_ok
<IfDefine !ip_ok>
  AuthName "Guest Login"
  AuthType Basic
  AuthUserFile /opt/lampp/lib/ok_users/guests.users
  require valid-user
</IfDefine>

但是setenv确实没有设置 ip_ok,我仍然受到挑战。

然后我尝试了这个:

SetEnv ip_ok
<IfDefine ip_ok>
  AuthName "Guest Login"
  AuthType Basic
  AuthUserFile /opt/lampp/lib/ok_users/guests.users
  require valid-user
</IfDefine>

并且我没有受到挑战。因此 IfDefine 正在工作。

有什么想法为什么我无法让 SetEnv 和 SetEnvIf 工作吗?我用谷歌搜索并阅读但无法破解它。

SetEnv doesn't seem to work for me. I tried this in my .htaccess:

SetEnvIf Remote_Addr ^192\.168\.0$ ip_ok
<IfDefine !ip_ok>
  AuthName "Guest Login"
  AuthType Basic
  AuthUserFile /opt/lampp/lib/ok_users/guests.users
  require valid-user
</IfDefine>

and I had to provide username/password credentials even though my ip is 192.168.0.10 and the server (centos5 / xampp for linux 1.6.8a) is 192.168.0.1

So I tried this:

SetEnv ip_ok
<IfDefine !ip_ok>
  AuthName "Guest Login"
  AuthType Basic
  AuthUserFile /opt/lampp/lib/ok_users/guests.users
  require valid-user
</IfDefine>

but setenv does not set ip_ok, and I still get challenged.

Then I tried this:

SetEnv ip_ok
<IfDefine ip_ok>
  AuthName "Guest Login"
  AuthType Basic
  AuthUserFile /opt/lampp/lib/ok_users/guests.users
  require valid-user
</IfDefine>

and I don't get challenged. Therefore IfDefine is working.

Any ideas why I can't get SetEnv and SetEnvIf to work?? I've googled and read but can't crack it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

死开点丶别碍眼 2024-09-26 02:02:33

并不像您想象的那样工作。它检查启动时传递给 httpd 的参数< /a> 通过 -Dparameter (或 < code>Define(在 Apache 2.3 中),而不是环境变量。

不过没关系,您应该能够像这样做您想做的事情:

Order allow,deny
AuthName "Guest Login"
AuthType Basic
AuthUserFile /opt/lampp/lib/ok_users/guests.users
Require valid-user
Allow from 192.168.0
Satisfy Any

Satisfy 指令,当设置为 Any 时,如果您通过了主机验证,则允许您获得访问权限,或者如果您已提供密码。

<IfDefine> doesn't work like you're thinking. It examines parameters passed to httpd at startup via -Dparameter (or Define in Apache 2.3), not the environment variables.

That's OK though, you should be able to do what you want like this instead:

Order allow,deny
AuthName "Guest Login"
AuthType Basic
AuthUserFile /opt/lampp/lib/ok_users/guests.users
Require valid-user
Allow from 192.168.0
Satisfy Any

TheSatisfy directive, when set to Any, allows you to be granted access if you pass the host verification, or if you've supplied the password.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文