Dave Wreski wrote on 2023/04/11 10:54:
> SetEnvIf user-agent "(?i:TurnitinBot)" stayout=1
> SetEnvIf Request_URI "^linuxsecurity_features\.*$" !stayout
I have done it in the past, too.
It was like allowing another level of conditions to be attached to Allow and Deny, depending on the condition that defines the variable and the condition that undefines the variable, right? :)
This is no longer needed, so change the name to something that makes sense.
SetEnvIf user-agent "(?i:TurnitinBot)" SOMENAME1
SetEnvIf Request_URI "^linuxsecurity_features\.*$" SOMENAME2
And let it meet all the requirements.
<RequireAll>
Require all granted
Require not env SOMENAME1
Require env SOMENAME2
</RequireAll>
...According to mod_authz_core.html, it looks like we don't even need SetEnvIf.
<RequireAny>
<RequireAll>
Require all granted
Require not expr "%{HTTP_USER_AGENT} =~ /SomeBot/"
</RequireAll>
Require expr "%{REQUEST_URI} =~ /^linuxfoo/"
</RequireAny>
The outermost <RequireAny> is verbose.
I'm on the teaching side, but I've never used expr, so I don't know if the syntax is correct. :)
I did my research on it a long time ago and I don't know if it is still correct...
The result of this access control is broken by the Order, Allow, and Deny directives :)
Sure, I thought that all of those directives should be allowed by
Order Deny,Allow
or
Allow from all
, but I forgot :)
For now, Order, Allow, and Deny should be removed if they exist somewhere :)
Regards.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx