サーバー

.htaccessでアクセス制限をする方法

タルシャン

本業は、IT企業のエンジニアです。 私の正体を知っている方はそっと見守っていてください...

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>

まとめ

以上となります。

こちらの記事を参考に良いサーバーライフを送ってみてはどうでしょうか。

ばいなら!

あっ、良ければ記事をシェアしていただけると幸いです。

WordPressテーマランキング

(ACTION)AFFINGER6

当ブログでもメインで使用しているWordPressテーマですよ。

SWELL

初心者でもおしゃれなウェブサイトが作れる。

THE・THOR

他を圧倒するようなおしゃれなサイト制作をしたいならこちら。

  • この記事を書いた人

タルシャン

本業は、IT企業のエンジニアです。 私の正体を知っている方はそっと見守っていてください...

-サーバー