Rails2.3で試した。
必要最低限の要素のみ。
config/routes.rb
map.connect "sitemap.xml", :controller => :test, :action => :sitemap
controllers/test_controller.rb
class TestController < ApplicationController
def sitemap
# サイトマップとして送信したいページのURL生成に必要な情報を取得する
@members = Member.find(:all)
@entries = Entry.find(:all)
headers["Content-Type"] = "text/xml; charset=utf-8"
respond_to do |format|
format.xml {render :layout => false}
end
end
end
views/test/sitemap.xml.builder
xml.instruct!「http://」から始まるフルなURLにするために「:only_path => false」を付けている。
xml.urlset(:xmlns => "http://www.sitemaps.org/schemas/sitemap/0.9") do
# トップページ
xml.url do
xml.loc(url_for(:controller => :top, :only_path => false))
end
# 個別のページ
@members.each do |member|
xml.url do
xml.loc(url_for(:controller => :members, :action => :show, :id => member.id, :only_path => false))
end
end
・
・
・
end
状況によってはキャッシュさせた方が良いだろう。
検索エンジンへの通知はrobots.txt等で。(Google Webマスターツールとか使った方が安心感があるけど。)
robots.txt
# See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
#
# To ban all spiders from the entire site uncomment the next two lines:
# User-Agent: *
# Disallow: /
Sitemap: http://www.example.com/sitemap.xml
参考:
「はじめてのRuby on Rails2」著者サポートページ
Rails2.0でGoogleサイトマップとかのsitemap.xml作る - ひげろぐ
sitemaps.org - プロトコル
0 件のコメント:
コメントを投稿