【问题标题】:How to make htaccess demand a password on one domain (or IP) but not another如何使 htaccess 要求一个域(或 IP)上的密码而不是另一个域(或 IP)
【发布时间】:2015-11-13 18:24:21
【问题描述】:

我有一个这样的网站:

  • dev.website.com(托管@1.1.1.1)
  • phil.website.com(托管@1.1.1.2)
  • www.website.com(托管 @ 1.1.1.3 和 1.1.1.4 从负载平衡器 @ 1.1.1.5 提供服务)

他们都使用具有这些行的文件:

AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /var/www/vhosts/website.com/.htpasswd
Require valid-user

我想这样做,以便查看负载平衡器的用户不需要密码。我该如何做到这一点?

【问题讨论】:

    标签: .htaccess subdomain .htpasswd


    【解决方案1】:

    使用mod_envif 指令:

    SetEnvIf Remote_Addr ^(1\.1.\1\.3|1\.1.\1\.4)$ NO_AUTH
    
    AuthType Basic
    AuthName "Password Protected Area"
    AuthUserFile /var/www/vhosts/website.com/.htpasswd
    Require valid-user
    
    Satisfy    any
    Order      deny,allow
    Deny from  all
    Allow from env=NO_AUTH
    

    【讨论】:

    • 所以“Remote_Addr”不会被负载均衡器弄糊涂?
    • Naw 它不起作用,我现在正在尝试进入日志。
    • 用户的IP不是REMOTE_ADDR吗?我正在看主机。
    • 是的,但有时代理和负载均衡器将其 IP 发送为 REMOTE_ADDR
    • 啊,我明白了,LB 将它设置为 127.0.0.1 所以我把它包括在内。那么有人仍然可以访问 dev.website.com 并以某种方式假装来自 127.0.0.1 然后绕过身份验证吗?
    猜你喜欢
    • 2021-11-27
    • 2011-06-17
    • 2023-03-07
    • 2017-11-10
    • 2013-10-06
    • 2020-10-02
    • 2013-07-02
    • 2020-05-26
    • 2011-12-01
    相关资源
    最近更新 更多