所以我遇到以下“问题”,日志中充满以下警告:
[{"14":2}, {"16":1}, {17:1}]
有人尝试访问的每个页面都会发生这种情况。现在,我已经发现问题(可能)正在发生,因为我仍在[access_compat:error] AH01797: client denied by server configuration
order allow,deny
.htaccess
尽管上述htaccess可以正常运行(来自good_country的人被允许通过,但其他人被拒绝了),但access_compat:error仍然显示。
因此,删除...
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
...
会使错误不再显示,但也将使所有人都能访问该页面。
就像我之前说过的那样,发现此错误可能是由于我在Apache version is 2.4时使用order allow,deny
导致的(我无法确定版本是2.4,因为我使用的是共享虚拟主机但目前最有可能的解释; phpinfo()未显示Apache版本)。
现在,我不完全知道如何解决此问题,但是我看到您也可以同时使用order allow,deny
,但我不知道如何将其与require
/ { {1}}。
答案 0 :(得分:0)
After a bit more searching and trial-and-error I found at that the following works fine for me and the "errors" stopped showing up
<RequireAll>
Require expr %{HTTP:CF-IPCountry} =~ /(AL|AD)/i
</RequireAll>
^ please note that there are no quotes around the expression (in contrary to the documentation)