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
2006/11/28 16:59:36