,所以我有以下记录被以下警告淹没的"问题":
[access_compat:error] AH01797: client denied by server configuration
这发生在每个页面上都试图访问的每一页。现在,我已经发现问题(可能是)发生,因为我仍在.htaccess
order allow,deny
...
Order allow,deny
SetEnvIf CF-IPCountry AL good_country
SetEnvIf CF-IPCountry AD good_country
Allow from env=good_country
SetEnvIf CF-IPCountry US bad_country
Deny from env=bad_country
...
虽然上述HTACCESS效果很好(good_country的人通过,其他人被拒绝),但Access_compat:错误仍然显示。
因此,删除order allow,deny
会导致错误不再显示,但它也将使每个人都访问页面。
就像我在发现Apache版本时使用order allow,deny
之前发现此错误可能是由我造成的(我无法确定该版本是2.4现在说明; phpinfo()未显示apache版本)。
现在我不完全知道如何解决这个问题,但是我看到您也可以使用require
,但是我不知道如何与good_country
/bad_country
结合使用它。
在更多的搜索和试用之后,我发现以下情况对我有效,并且"错误"停止出现
<RequireAll>
Require expr %{HTTP:CF-IPCountry} =~ /(AL|AD)/i
</RequireAll>
^请注意,该表达式没有引号(与文档相反)