通过服务器配置拒绝客户端(HTACCESS;订单允许,拒绝)



,所以我有以下记录被以下警告淹没的"问题":

[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>

^请注意,该表达式没有引号(与文档相反)

最新更新