无法让 setenv 在 .htaccess 中工作
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
并不像您想象的那样工作。它检查启动时传递给httpd
的参数< /a> 通过-Dparameter
(或 < code>Define(在 Apache 2.3 中),而不是环境变量。不过没关系,您应该能够像这样做您想做的事情:
Satisfy
指令,当设置为Any
时,如果您通过了主机验证,则允许您获得访问权限,或者如果您已提供密码。<IfDefine>
doesn't work like you're thinking. It examines parameters passed tohttpd
at startup via-Dparameter
(orDefine
in Apache 2.3), not the environment variables.That's OK though, you should be able to do what you want like this instead:
The
Satisfy
directive, when set toAny
, allows you to be granted access if you pass the host verification, or if you've supplied the password.