プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
HEADメソッドによるHTTPアクセスに対して404エラーを返す
結論から書くと「.htaccess」に

RewriteEngine On
RewriteCond %{REQUEST_METHOD} (^(HEAD)$)
RewriteRule ^(.*)$ - [R=404,L]

とか記述すればOKです。
リクエストメソッドがHEADのアクセスに対して、常に404を返すようになります。

それでは、詳細を書いていきます。

とあるサーバのアクセスログを見ていたら

198.51.100.0 - - [18/Apr/2015:13:19:22 +0900] "HEAD / HTTP/1.0" 200 198 "-" "-"

みたいなログが結構あってですね。

まずHEADメソッドによるリクエストでURLの存在確認をして、
その後、GETメソッドでページを取得しているようでした。
きっと、プログラムで機械的に取得しているのでしょうね。

うぜーな、こいつ(-A-)

サーバの負荷は上がるし、コンテンツは持って行かれるしで、
こちら側にはまったくメリットがありません。

完全に防ぐのはもちろん無理ですが、ささやかな嫌がらせをすることにしました。
というわけで、HEADメソッドによるリクエストには一律で404を返すことにしたのです。

どーやんの(--?

ふむふむ(--)

過程は皆さんも興味が無いと思うのですっ飛ばして、
「.htaccess」に以下の記述を追加したらOKでしたφ(--)

RewriteEngine On
RewriteCond %{REQUEST_METHOD} (^(HEAD)$)
RewriteRule ^(.*)$ - [R=404,L]

試しにtelnetでHEADメソッドによるリクエストを投げたところ
こんなレスポンスが返ってきましたよφ(--)

HTTP/1.1 404 Not Found
Server: nginx
Date: Sat, 18 Apr 2015 04:28:42 GMT
Content-Type: text/html
Connection: keep-alive
Set-Cookie: PHPSESSID=ueafggcdenbamgb3nd6reqac4; path=/
X-Powered-By: PleskLin

ちゃんと404が返ってますね。
よしよし。

ちなみに、一部の検索エンジンさんもHEADでアクセスしてくるので、
検索エンジンさんと仲良くしたい人は止めておいた方が無難かもしれません。

今回は、検索エンジンさんなんてどうでも良いサイトなので
HEADアクセスをまとめて拒否ってしまいました。

そんな感じ\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● 環境設定関連  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事