僕は発展途上技術者

5分でできるRailsサイトのGoogleサイトマップ対応

ちょっとてこずったところがあって僕はもう少しかかってしまったけれど、以下の通りにやれば確実に5分以内にできると思います。


Item というモデルがあり、各レコードに対応したページが、

http://example.com/item/list/1、http://example.com/item/list/2 とします。


app/controller/item_controller.rb に以下の通り、sitemap アクションを追加。



class ItemController < ApplicationController
def sitemap
@headers['Content-Type'] = 'text/xml; charset=utf-8'
@items = Item.find(:all)
render_without_layout
end
end

app/view/item/ 以下には sitemap.rxml という *.rxml 形式のテンプレートを作ります。



xml.instruct! :xml, :version=> '1.0', :encoding => 'UTF-8'
xml.urlset( :xmlns => 'http://www.google.com/schemas/sitemap/0.84') {
xml.url {
xml.loc('http://example.com/')
xml.changefreq('daily')
xml.priority('0.9')
}
@items.each do |item|
xml.url {
xml.loc("http://example.com/item/list/#{item.id}")
xml.changefreq('weekly')
xml.priority('0.5')
}
end
}

あとは、config/route.rb に



map.xml 'sitemap.xml' , :controller => 'item', :action => 'sitemap'

を追加し、http://example.com/sitemap.xml へのアクセスを http://example.com/item/sitemap に振るようにします。


http://example.com/sitemap.xml の内容を確認したら、Google ウェブマスター ツールよりサイトマップを登録。


以上、終わり。


やっぱり Rails 素敵です。


参考:

» typoをGoogle Sitemapに対応させる

» Generating Google SiteMaps with Ruby on Rails


プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Raspberry Piではじめる どきどきプログラミングを書きました。

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Twitter @jishiha

最近のエントリー

アーカイブ