我想限制访问我的Apache HTTPD使用基本身份validation除了在某些目录中的所有文件。
以下工作适用于整个服务器的基本身份validation:
<Directory /> AuthType Basic AuthName "Private" AuthUserFile /usr/local/apache/passwd/passwords </Directory>
不过,我也想把目录/foo限制在一个主机上, 而不pipe基本的身份validation如何 :
<Directory /foo> Order Deny,Allow Deny from all Allow from my-host.com </Directory>
两个设置都可以正常工作,但是我不能让它们组合工作:
/foo子句中使用Satisfy all ),用户需要来自正确的主机,并有有效的凭据来访问/foo /foo子句中使用Satisfy any ,那么用户可以拥有有效的凭据,也可以来自正确的主机 但是,我只希望my-host.com用户在没有基本身份validation的情况下访问/foo 。 即使使用正确的证书,也不应允许来自其他主机的连接。 实际上,这些连接甚至不会被提示input基本的身份validation凭据。
我错过了什么?
你可以用/ foo的一个空的passwd文件来尝试吗?
<Directory /foo> Order Deny,Allow Deny from all Allow from my-host.com AuthType Basic AuthName "my-host only" AuthUserFile /usr/local/apache/passwd/empty Satisfy any </Directory>