Apache 2.2和Apache 2.4版本的海外IP访问限制方法(如果出现AH01797:client denied by server configuration错误)

执行环境

Apache/2.2.15(Unix)→ Apache/2.4.37(CentOS)

总结

在.htaccess文件中限制了国外IP地址后,在服务器更换时发生了重写。
以下是将同样的内容从Apache 2.2版更改为2.4版时可能会遇到的错误说明,以及不进行更改时可能会遇到的错误说明。

Apache 2.2系列

### 検索エンジンをまとめて許可
SetEnvIf User-Agent "Googlebot" allowbot
SetEnvIf User-Agent "msnbot" allowbot
SetEnvIf User-Agent "bingbot" allowbot
SetEnvIf User-Agent "Slurp" allowbot
## 一旦すべて拒否して
order deny,allow
deny from all
## 改めて、検索エンジンからのアクセスを許可
allow from env=allowbot

## SearchConsoleのプロパティ確認用の対策
allow from googlebot.com
allow from google.com
## 国外IPからのアクセスを拒否 
allow from 1.0.16.0/20
allow from 1.0.64.0/18
~

Apache 2.4版本

## 検索エンジンをまとめて許可
SetEnvIf User-Agent "Googlebot" allowbot
SetEnvIf User-Agent "msnbot" allowbot
SetEnvIf User-Agent "bingbot" allowbot
SetEnvIf User-Agent "Slurp" allowbot

## 一旦すべて拒否

<RequireAny>
    Require all denied
    ### 検索エンジンからのアクセスを許可
    Require env allowbot
    ## SearchConsoleのプロパティ確認用の対策
    Require host googlebot.com
    Require host google.com

    ### 日本国内のIPを許可(国外IPからのアクセスを拒否)
    Require ip 1.0.16.0/20
    Require ip 1.0.64.0/18
    ~
</RequireAny>

调试修改后的.htaccess文件的方法。

打开这个网站并输入要验证的URL。选择一个适当的国家,点击“开始测试”即可开始测试。
在结果页面上通过查看“截图”或“查看测试日志”,如果显示403错误,就可以确认已经限制了外国IP。
顺便一提,结果页面的URL是单独生成的,因此非常容易分享,非常方便。

如果没有进行改写的话

如果在Apache 2.4环境下不进行上述修改,则可能会在日志中输出以下服务器错误。

Error    12.345.678.9012        AH01797: client denied by server configuration: /var/www/vhosts/qwerty.com/httpdocs/            Apache エラー

请参考

搜索引擎机器人列表
https://www.casis-iss.org/ex1911/
搜索引擎属性
https://support.google.com/webmasters/answer/80553?hl=ja
日本国内IP列表
http://www.cgis.biz/tools/access/