RSS配信の設定(有効/無効)方法

デフォルト設定のDrupalは、投稿されたコンテンツを自動でRSSに変換・配信できます。しかし、サイト構築時に適切な設定を行わないとRSSで配信したくないコンテンツまで配信されてしまうといった問題が発生します。ここでは、RSS配信に関する基礎知識と設定方法を記載します。

RSS配信対象コンテンツ

次の条件をすべて満たしたコンテンツがRSSフィードとして配信されます。下記に注意し、RSSで配信するコンテンツを設定してください。

  • 「フロントページに掲載」にチェックの入っているコンテンツ
  • 未ログインユーザが閲覧権限のあるコンテンツ

RSS配信用URL

下記のURLでRSSフィードを取得することができます。

Drupalインストールディレクトリ/rss.xml

RSSを完全に利用不可にする方法

RSS配信機能を完全に利用できないようにするためには、rss.xmlへのアクセスをブロックする必要があります。
http://www.example.com/rss.xml へのリクエストに対し、RSSフィードを返すよう定義しているのは、nodeモジュール内のhook関数 node_menu() です。

function node_menu() {
  (省略)
  $items['rss.xml'] = array(
    'title' => 'RSS feed',
    'page callback' => 'node_feed',
    'access arguments' => array('access content'),
    'type' => MENU_CALLBACK,
  );
  (省略) 
  return $items;
}

これは、独自のモジュールを作成し、hook_menu_alter()を定義することでオーバーライドすることができます。モジュールを作成し、下記コードを定義してください。関数の定義後は、管理セクション→サイトの環境設定→パフォーマンス からサイトのキャッシュをクリアしてください。

function mymodule_menu_alter(&$items) {
   unset($items['rss.xml']);
}

※関数名の "mymodule" は独自に作成するモジュール名と同じものにしてください。
hook_menu(), hook_menu_alter()の詳細はDrupal API Reference サイトや書籍等をご覧ください。

これで、http://www.example.com/rss.xml へアクセスを防ぐことができます。

また、RSSフィードボタンが画面上に表示されている場合は、テンプレートやブロックの設定を変更し、非表示にしてください。

参考サイト

http://drupal.org/node/198129

Drupalでお悩みですか?
Drupalのことなら私たちにお任せください。
Drupal支援サービスのご紹介
弊社執筆書 Drupal Pro Bookのご紹介

この記事のトラックバックURL(あなたの記事にはこのページへのリンクを含めて下さい):

http://www.webgogo.jp/trackback/689