スポンサーリンク

訪問者にアクセスさせたくないページの制限について

今回、対象としているのは以下の2つです。

  • 「/node/%/log」(ノード番号%のログメッセージ)
  • 「/node/%/track」(ノード番号%のアクセス履歴)

Drupal 6.xのころには気にしていませんでしたが、Drupal 7.xになって仕様がかわったためかそれともインストールしている寄贈モジュールによるものなのかはわかりませんが、同じ設定では上記2箇所が訪問者に表示されてしまっていました。

Drupal 7.xを導入した当初にページにリンクが表示されることに気が付きテンプレートを編集して管理者以外には非表示になるように設定しました。
これにより訪問者は上記2箇所のページの存在を知ることができないためアクセスされることはないだろうと安易に思っていました。しかし、この対処は、十分ではありませんでした。

なぜなら、サイトを巡回してきたロボットがサイトのリンクを辿り、非表示に設定しているページを登録してしまうためです。
そのため、検索サイト経由で上記2箇所のページが訪問者に表示されてしまっていました。
 

対処1.アクセス権制御による方法

ページを表示するアクセス権を拒否することで、実際には表示できなくできます。
それぞれのページのアクセス権は、以下の様にすれば制御できました。

/node/%/log 「admin/people/permissions」の「User」の「ユーザプロファイルの表示」の権限で匿名ユーザに権限を付与しない
※コアモジュールで「User」を無効にしていれば不要
/node/%/track 「admin/people/permissions」の「Statistics」の「コンテンツアクセス統計を表示」の権限で匿名ユーザに権限を付与しない
※コアモジュールで「Statistics」を無効にしていれば不要
※コアモジュールの「Tracker」とは無関係

コアモジュールの構成および機能がDrupal 6.x とDrupal 7.xで異なりその影響によってアクセス制限の影響範囲も変更になったようです。
アクセス制限によって、未公開ページが表示されることはなくなりました。
しかし、これだけではまだ検索ロボットが巡回に来てしまうため、リンクを辿って訪問者がアクセスし無数のエラーメッセージが表示されてしまいます。
 

2.検索サイトのボット対応

SEO対策として検索サイトのボットが巡回に来るように「google」「bing」「MSN」の検索サイトに登録してあります。
このロボットの制御には「robots.txt」とメタタグ(NOFOLLOW)を利用していました。
しかし、Drupal 7.xでは「Nodeword」モジュールが対応していなっかったため使用できず、「Metatags」モジュールを使用してメタタグを追加できるように設計しました。
同じ設定になるようにはどうすればよいのかが不明でデフォルト設定のまま放置状態です。
現在はrobots.txtでのみ対応しています。
 

Yetibot対応

このボットは、naver.jp(NHN Japan)の検索ボットです。こちらに説明があります。
※naver.jpはLINEで有名ですが、Livedoorを買収したのも影響してか非常に多くのロボットが巡回にきています。
※naver.jpから当サイトへは計18ボットが巡回に来ています。
whoisで検索するとまれに韓国管理下のIPアドレスなのにnaver.jpなんてのが見つかったりとよくわからないサイトです。
このYetibotの影響は、とにかく巡回頻度が多いため、上記2箇所をアクセス拒否しても、リンクがどこかに登録されているために巡回してしまいます。

問題の原因は上記2箇所をロボットで巡回できないようにすることですが、その方法がいまいちわかっていません。
とりあえず以下をrobots.txtに追加しました。

Disallow:/node/*/log
Disallow:/node/*/track
Disallow:/?q=node/*/log
Disallow:/?q=node/*/track 

これでしばらく様子を見ることにします。
 

スポンサーリンク

この記事が気に入ったら
フォローしよう

最新情報をお届けします

Twitterでフォローしよう

おすすめの記事