【问题标题】:apache v2.4 remove old v2.2 'Deny from env=BlockCountry' directiveapache v2.4 删除旧的 v2.2 'Deny from env=BlockCountry' 指令
【发布时间】:2021-09-07 10:07:21
【问题描述】:

我使用 geoIP 保护我的 HTTP(s) 虚拟主机

<Directory /srv/www/vhosts>

    MaxMindDBEnable On
    MaxMindDBFile DB /usr/local/share/maxminddb/GeoLite2-Country.mmdb
    MaxMindDBEnv MM_COUNTRY_CODE DB/country/iso_code

    SetEnvIf MM_COUNTRY_CODE ^(RU|CN|HK|IN) BlockCountry
    Deny from env=BlockCountry

    Options  FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

1.) 我在这里混合 v2.2 Deny from env=BlockCountry 和 v2.4 Require all granted 指令是否正确。 如果是,我在网上搜索以将Deny from env=BlockCountry 替换为 apache2.4 替代品,但找不到。我怎样才能摆脱旧的Denydirecticve?

2.) 我是否纠正了我的 apache2.conf 中的 GeoIP 代码仅靠一些“运气”才能与这个版本不一致的指令一起工作,因为我从来没有像我一样设置规则( Require 或 Deny )首先出现的顺序在 v2.2 中apache order allow deny

3.) Require env BlockCountry 有效,但所有被阻止的国家/地区都可以访问,而其他所有国家/地区都没有(我总是使用 VPN 进行测试) 所以我尝试了Require not env BlockCountry,但是当我重新启动 apache web 服务器时这会导致错误

【问题讨论】:

    标签: apache apache2.4 apache2.2


    【解决方案1】:

    你可以否定你的规则。

    而不是 SetEnvIf MM_COUNTRY_CODE ^(RU|CN|HK|IN) BlockCountry 来自 env=BlockCountry 的拒绝

    设置。 SetEnvIf MM_COUNTRY_CODE !^(RU|CN|HK|IN) AllowCountry 需要环境 AllowCountry

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 2014-12-11
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      • 2019-12-18
      相关资源
      最近更新 更多