XML-RPCの仕組みを利用して外部サービスと連携したいけど
BOTやクラッカーのアクセスはブロックしたい。
そんなわがままなあなたにおすすめです。
今回「.htaccessでアクセス制限する方法」をまとめました。
ニッチな要求だけでなく様々なアプローチでの設定方法をまとめています。
細かく解説していますので、この記事だけみれば柔軟に対応出来るようになると思います。
ユーザエージェントを指定して制限する
ユーザーエージェント指定で制限する方法です。
iOSやAndroidといったデバイスごと、
SafariやChromeといったブラウザごと、
を制限することができます。
SetEnvIf User-Agent "文字列" HOGE
deny from env=HOGE
「"文字列"」のところに拒否したいユーザーエージェント(の一部)を書きます。
「HOGE」は適当で大丈夫です。
SetEnvIfとdenyの2つが対応するようになっていれば問題ないです。
コードとしてはこちら
<IfModule mod_rewrite.c>
SetEnvIf User-Agent "python-requests" HOGE
order deny,allow
deny from all
allow from env=HOGE
</IfModule>
全てを許可、拒否する
「order allow,deny」は「許可してから拒否」の指定です。
「order deny,allow」は「拒否してから許可」となります。
xmlrpc.phpへのアクセスをリダイレクトする
サーバ負荷を考えると、xmlrpc.phpへのアクセスを0.0.0.0にリダイレクトさせるのが一番良いとされています。
RewriteRule ^xmlrpc\.php$ "http\:\/\/0\.0\.0\.0\/" [R=301,L]
一般的なWordPressの設定であれば、下記のように設定されていると思うので、RewriteBaseの後にでも上記の行を追加してください。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
まとめ
以上となります。
こちらの記事を参考に良いサーバーライフを送ってみてはどうでしょうか。
ばいなら!
あっ、良ければ記事をシェアしていただけると幸いです。