Googlebotを受け入れつつ非日本語ブラウザを拒否する設定

Apache2.4の設定です。

HTTP_ACCEPT_LANGUAGEにjaという文字列が含まれていた時にのみアクセスを許可します。しかし、これだとGooglebotはじめ各種botも拒否してしまう可能性があります。そこで、HTTP_USER_AGENTに含まれる文字列も併用してアクセス制御します。

試行錯誤しましたが、最終的に次の4行にまとまりました。

SetEnvIfNoCase Accept-Language ja Ja
<If "%{HTTP_USER_AGENT} =~ /Mozilla.*(Chrome|Gecko|MSIE).*/">
  Require env Ja
</If>

これで、Google先生のアクセスを受け入れつつ、非日本語ブラウザを拒否できるようになりました。

カテゴリー blog