我需要创build一些.htaccessconfiguration,我需要一些帮助。 我的Apache版本是2.4。 在Ubuntu上运行。
任务:
1)允许对经过authentication的用户和具有“白色”IP地址的用户使用test-uri-1;
2)仅允许经过authentication的用户访问test-uri-2和test-uri-3;
3)允许不受限制地访问所有其他URI;
4)只能在web项目的根目录下使用.htaccess文件。
我的第一个代码示例:
SetEnvIf Request_URI ^test-uri-1$ require_auth=true SetEnvIf Request_URI ^test-uri-2$ require_auth=true SetEnvIf Request_URI ^test-uri-3$ require_auth=true SetEnvIf Request_URI ^test-uri-2$ require_auth_force=true SetEnvIf Request_URI ^test-uri-3$ require_auth_force=true AuthType Basic AuthName "Secure area" AuthUserFile /wwwroot/.htpasswd Order Deny,Allow Deny from all <If "-z reqenv('require_auth_force')"> Allow from 1.2.3.4 4.3.2.1 1.1.1.1 2.2.2.2 </If> Satisfy any Require valid-user Allow from env=!require_auth
此解决scheme不起作用。 事实certificate,IF条件只能检查EnvVar是否在服务器configuration中定义(但我只能使用.htaccess文件)。 在这个例子中,test-uri-1的密码总是需要的。 即使用户有“白色”的IP地址。
我的第二个代码示例:
SetEnvIf Request_URI ^test-uri-1$ require_auth=true SetEnvIf Request_URI ^test-uri-2$ require_auth=true SetEnvIf Request_URI ^test-uri-3$ require_auth=true AuthType Basic AuthName "Secure area" AuthUserFile /wwwroot/.htpasswd Order Deny,Allow Deny from all <If "'%{REQUEST_URI}' = 'test-uri-1'"> Allow from 1.2.3.4 4.3.2.1 1.1.1.1 2.2.2.2 </If> Satisfy any Require valid-user Allow from env=!require_auth
此解决scheme也不起作用。 我知道为什么是这样。 test-uri-1需要密码,即使用户也有“白色”的IP地址。
你可以帮帮我吗? 非常感谢!