Apache基本身份验证要求在错误的域上进行身份验证

时间:2019-02-18 12:50:36

标签: apache2 basic-authentication vhosts

您好亲爱的开发人员和sa的人员,

我有一个非常奇特的问题,这是我所有的开发和服务器管理生涯中从未遇到过的问题。

我有1个域名,我们将其称为example.com。

我为此设置了两个不同的虚拟主机。

  1. example.com
  2. dev.example.com

    <VirtualHost x.x.x.x:443>
        ServerAdmin admin@gmail.com
        DocumentRoot /home/user/example
        ServerName example.com
        ServerAlias www.example.com
    
        SSLEngine on
        SSLCertificateFile ..../certificate.crt
        SSLCertificateKeyFile ..../certificate.key
        SSLCertificateChainFile ..../cabundle.crt
    </VirtualHost>
    
    
    <VirtualHost x.x.x.x:443>
        ServerAdmin admin@gmail.com
        DocumentRoot /home/user/dev_example
        ServerName dev.example.com
        ServerAlias dev.example.com
    
        SSLEngine on
        SSLCertificateFile ..../certificate.crt
        SSLCertificateKeyFile ..../certificate.key
        SSLCertificateChainFile ..../cabundle.crt
    </VirtualHost>
    

这一切都很好,但是我想通过身份验证模块通过简单的方式限制用户访问开发主机。

AuthType Basic
AuthName "Development"
AuthUserFile /home/user/.htpasswd
Require valid-user

身份验证本身有效。但是现在问题来了!开发虚拟主机的身份验证部分正在其他虚拟主机上要求提供凭据,这根本没有任何意义...我尝试将身份验证部分放在不同的位置(例如目录和位置),但每次的结果都是相同的...我厌倦了它,决定将其放入.htaccess文件中……但是它仍然要求在另一个域上进行身份验证,而该域甚至没有读取该虚拟主机上的.htaccess文件。

简短:

  • 有两个虚拟主机(A和B)
  • 想要在B上进行身份验证
  • 在B上设置身份验证
  • 浏览器要求对A进行身份验证(即使我将身份验证代码放入B的.htaccess文件中,浏览至A时也不应读取该身份验证代码)。

希望有人能理解这种怪异的行为,因为我不知道出了什么问题。如果我只评论.htaccess文件中的auth部分,则不会要求这两个虚拟主机都提供凭据。

0 个答案:

没有答案