#370: generate sitemap
This commit is contained in:
parent
42a97c5c29
commit
e367a5e0dd
1
Gemfile
1
Gemfile
|
@ -83,6 +83,7 @@ gem 'compass-rails', '~> 1.1.6'
|
||||||
gem 'uglifier', '~> 2.4'
|
gem 'uglifier', '~> 2.4'
|
||||||
gem 'therubyracer', '~> 0.12.1', platforms: [:mri, :rbx]
|
gem 'therubyracer', '~> 0.12.1', platforms: [:mri, :rbx]
|
||||||
gem 'therubyrhino', '~> 1.73.1', platforms: :jruby
|
gem 'therubyrhino', '~> 1.73.1', platforms: :jruby
|
||||||
|
gem 'sitemap_generator'
|
||||||
|
|
||||||
|
|
||||||
group :production do
|
group :production do
|
||||||
|
|
|
@ -395,6 +395,8 @@ GEM
|
||||||
rack (~> 1.4)
|
rack (~> 1.4)
|
||||||
rack-protection (~> 1.4)
|
rack-protection (~> 1.4)
|
||||||
tilt (~> 1.3, >= 1.3.4)
|
tilt (~> 1.3, >= 1.3.4)
|
||||||
|
sitemap_generator (5.0.1)
|
||||||
|
builder
|
||||||
skinny (0.2.3)
|
skinny (0.2.3)
|
||||||
eventmachine (~> 1.0.0)
|
eventmachine (~> 1.0.0)
|
||||||
thin (~> 1.5.0)
|
thin (~> 1.5.0)
|
||||||
|
@ -536,6 +538,7 @@ DEPENDENCIES
|
||||||
shotgun
|
shotgun
|
||||||
shoulda
|
shoulda
|
||||||
shoulda-matchers
|
shoulda-matchers
|
||||||
|
sitemap_generator
|
||||||
skype
|
skype
|
||||||
soundmanager-rails
|
soundmanager-rails
|
||||||
state_machine (~> 1.2)
|
state_machine (~> 1.2)
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
class SitemapController < ApplicationController
|
||||||
|
|
||||||
|
def show
|
||||||
|
redirect_to "/sitemaps/#{request.host_with_port.gsub(/www./, '')}/sitemap.xml.gz"
|
||||||
|
end
|
||||||
|
|
||||||
|
def robots
|
||||||
|
render file: 'sitemap/robots', layout: false, content_type: Mime::TEXT
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1,22 @@
|
||||||
|
# robots.txt for <%= root_url %>
|
||||||
|
|
||||||
|
User-agent: *
|
||||||
|
Disallow: /*/*/tree/*
|
||||||
|
Disallow: /*/*/blob/*
|
||||||
|
Disallow: /*/*/wiki/*/*
|
||||||
|
Disallow: /*/*/issues?*
|
||||||
|
Disallow: /*/*/commits/*
|
||||||
|
Disallow: /*/blame/
|
||||||
|
Disallow: /*/raw/
|
||||||
|
Disallow: /*.git
|
||||||
|
Disallow: /*.git/
|
||||||
|
Disallow: /search
|
||||||
|
Disallow: /users/sign_up
|
||||||
|
Disallow: /users/sign_in
|
||||||
|
Disallow: /users/password/new
|
||||||
|
Disallow: /users/register_requests/new
|
||||||
|
Disallow: /invite.html
|
||||||
|
Disallow: /thanks.html
|
||||||
|
Allow: /
|
||||||
|
Host: <%= root_url.gsub(/\/$/, '') %>
|
||||||
|
Sitemap: <%= sitemap_url %>
|
|
@ -1,4 +1,9 @@
|
||||||
Rosa::Application.routes.draw do
|
Rosa::Application.routes.draw do
|
||||||
|
|
||||||
|
# Redirect sitemap1.xml.gz file on AWS S3
|
||||||
|
match '/sitemap.xml.gz' => 'sitemap#show', via: [:get, :post, :head], as: :sitemap
|
||||||
|
match '/robots.txt' => 'sitemap#robots', via: [:get, :post, :head], as: :robots
|
||||||
|
|
||||||
resource :contact, only: [:new, :create, :sended] do
|
resource :contact, only: [:new, :create, :sended] do
|
||||||
get '/' => 'contacts#new'
|
get '/' => 'contacts#new'
|
||||||
get :sended
|
get :sended
|
||||||
|
|
|
@ -26,6 +26,10 @@ every :day, at: '3:00 am' do
|
||||||
rake 'activity_feeds:clear', output: 'log/activity_feeds.log'
|
rake 'activity_feeds:clear', output: 'log/activity_feeds.log'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
every :day, at: '2:30 am' do
|
||||||
|
rake 'sitemap:refresh', output: 'log/sitemap.log'
|
||||||
|
end
|
||||||
|
|
||||||
every 1.hour do
|
every 1.hour do
|
||||||
rake 'buildlist:clear:outdated_canceling', output: 'log/canceling_build_list_clear.log'
|
rake 'buildlist:clear:outdated_canceling', output: 'log/canceling_build_list_clear.log'
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
%w(abf.rosalinux.ru abf.io).each do |domain|
|
||||||
|
|
||||||
|
SitemapGenerator::Sitemap.create(
|
||||||
|
default_host: "https://#{domain}",
|
||||||
|
sitemaps_path: "sitemaps/#{domain}"
|
||||||
|
) do
|
||||||
|
|
||||||
|
# root
|
||||||
|
add(root_path)
|
||||||
|
|
||||||
|
# Projects
|
||||||
|
Project.opened.find_each do |project|
|
||||||
|
add(project_path(project), lastmod: project.updated_at)
|
||||||
|
end
|
||||||
|
|
||||||
|
# BuildLists
|
||||||
|
BuildList.for_status(BuildList::BUILD_PUBLISHED).
|
||||||
|
where(platforms: { visibility: 'open' }, projects: { visibility: 'open' }).
|
||||||
|
joins(:save_to_platform, :project).
|
||||||
|
find_each do |bl|
|
||||||
|
add(build_list_path(bl), lastmod: bl.updated_at)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Platforms
|
||||||
|
Platform.opened.find_each do |platform|
|
||||||
|
add(platform_path(platform), lastmod: platform.updated_at)
|
||||||
|
|
||||||
|
# Repositories
|
||||||
|
add(platform_repositories_path(platform), lastmod: platform.updated_at)
|
||||||
|
platform.repositories.find_each do |repository|
|
||||||
|
add(platform_repository_path(platform, repository), lastmod: repository.updated_at)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
# Products
|
||||||
|
add(platform_products_path(platform), lastmod: platform.updated_at)
|
||||||
|
platform.products.find_each do |product|
|
||||||
|
add(platform_product_path(platform, product), lastmod: product.updated_at)
|
||||||
|
|
||||||
|
# ProductBuildList (ISO)
|
||||||
|
product.product_build_lists.for_status(ProductBuildList::BUILD_COMPLETED).find_each do |pbl|
|
||||||
|
add(platform_product_product_build_list_path(platform, product, pbl), lastmod: pbl.updated_at)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Users
|
||||||
|
User.find_each do |user|
|
||||||
|
add(user_path(user), lastmod: user.updated_at)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Groups
|
||||||
|
Group.find_each do |group|
|
||||||
|
add(group_path(group), lastmod: group.updated_at)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,202 +0,0 @@
|
||||||
User-agent: Googlebot
|
|
||||||
Allow: /*/*/tree/master
|
|
||||||
Allow: /*/*/blob/master
|
|
||||||
Disallow: /*/*/tree/*
|
|
||||||
Disallow: /*/*/blob/*
|
|
||||||
Disallow: /*/*/wiki/*/*
|
|
||||||
Disallow: /*/*/issues?*
|
|
||||||
Disallow: /*/*/commits/*
|
|
||||||
Disallow: /*/blame/
|
|
||||||
Disallow: /*/raw/
|
|
||||||
Disallow: /*.git
|
|
||||||
Disallow: /*.git/
|
|
||||||
Disallow: /search
|
|
||||||
Disallow: /users/sign_up
|
|
||||||
Disallow: /users/sign_in
|
|
||||||
Disallow: /users/password/new
|
|
||||||
Disallow: /users/register_requests/new
|
|
||||||
Disallow: /invite.html
|
|
||||||
Disallow: /thanks.html
|
|
||||||
|
|
||||||
User-agent: baiduspider
|
|
||||||
Allow: /*/*/tree/master
|
|
||||||
Allow: /*/*/blob/master
|
|
||||||
Disallow: /*/*/tree/*
|
|
||||||
Disallow: /*/*/blob/*
|
|
||||||
Disallow: /*/*/wiki/*/*
|
|
||||||
Disallow: /*/*/issues?*
|
|
||||||
Disallow: /*/*/commits/*
|
|
||||||
Disallow: /*/blame/
|
|
||||||
Disallow: /*/raw/
|
|
||||||
Disallow: /*.git
|
|
||||||
Disallow: /*.git/
|
|
||||||
Disallow: /search
|
|
||||||
Disallow: /users/sign_up
|
|
||||||
Disallow: /users/sign_in
|
|
||||||
Disallow: /users/password/new
|
|
||||||
Disallow: /users/register_requests/new
|
|
||||||
Disallow: /invite.html
|
|
||||||
Disallow: /thanks.html
|
|
||||||
|
|
||||||
User-agent: msnbot
|
|
||||||
Allow: /*/*/tree/master
|
|
||||||
Allow: /*/*/blob/master
|
|
||||||
Disallow: /*/*/tree/*
|
|
||||||
Disallow: /*/*/blob/*
|
|
||||||
Disallow: /*/*/wiki/*/*
|
|
||||||
Disallow: /*/*/issues?*
|
|
||||||
Disallow: /*/*/commits/*
|
|
||||||
Disallow: /*/blame/
|
|
||||||
Disallow: /*/raw/
|
|
||||||
Disallow: /*.git
|
|
||||||
Disallow: /*.git/
|
|
||||||
Disallow: /search
|
|
||||||
Disallow: /users/sign_up
|
|
||||||
Disallow: /users/sign_in
|
|
||||||
Disallow: /users/password/new
|
|
||||||
Disallow: /users/register_requests/new
|
|
||||||
Disallow: /invite.html
|
|
||||||
Disallow: /thanks.html
|
|
||||||
|
|
||||||
User-agent: naverbot
|
|
||||||
Allow: /*/*/tree/master
|
|
||||||
Allow: /*/*/blob/master
|
|
||||||
Disallow: /*/*/tree/*
|
|
||||||
Disallow: /*/*/blob/*
|
|
||||||
Disallow: /*/*/wiki/*/*
|
|
||||||
Disallow: /*/*/issues?*
|
|
||||||
Disallow: /*/*/commits/*
|
|
||||||
Disallow: /*/blame/
|
|
||||||
Disallow: /*/raw/
|
|
||||||
Disallow: /*.git
|
|
||||||
Disallow: /*.git/
|
|
||||||
Disallow: /search
|
|
||||||
Disallow: /users/sign_up
|
|
||||||
Disallow: /users/sign_in
|
|
||||||
Disallow: /users/password/new
|
|
||||||
Disallow: /users/register_requests/new
|
|
||||||
Disallow: /invite.html
|
|
||||||
Disallow: /thanks.html
|
|
||||||
|
|
||||||
User-agent: seznambot
|
|
||||||
Allow: /*/*/tree/master
|
|
||||||
Allow: /*/*/blob/master
|
|
||||||
Disallow: /*/*/tree/*
|
|
||||||
Disallow: /*/*/blob/*
|
|
||||||
Disallow: /*/*/wiki/*/*
|
|
||||||
Disallow: /*/*/issues?*
|
|
||||||
Disallow: /*/*/commits/*
|
|
||||||
Disallow: /*/blame/
|
|
||||||
Disallow: /*/raw/
|
|
||||||
Disallow: /*.git
|
|
||||||
Disallow: /*.git/
|
|
||||||
Disallow: /search
|
|
||||||
Disallow: /users/sign_up
|
|
||||||
Disallow: /users/sign_in
|
|
||||||
Disallow: /users/password/new
|
|
||||||
Disallow: /users/register_requests/new
|
|
||||||
Disallow: /invite.html
|
|
||||||
Disallow: /thanks.html
|
|
||||||
|
|
||||||
User-agent: Slurp
|
|
||||||
Allow: /*/*/tree/master
|
|
||||||
Allow: /*/*/blob/master
|
|
||||||
Disallow: /*/*/tree/*
|
|
||||||
Disallow: /*/*/blob/*
|
|
||||||
Disallow: /*/*/wiki/*/*
|
|
||||||
Disallow: /*/*/issues?*
|
|
||||||
Disallow: /*/*/commits/*
|
|
||||||
Disallow: /*/blame/
|
|
||||||
Disallow: /*/raw/
|
|
||||||
Disallow: /*.git
|
|
||||||
Disallow: /*.git/
|
|
||||||
Disallow: /search
|
|
||||||
Disallow: /users/sign_up
|
|
||||||
Disallow: /users/sign_in
|
|
||||||
Disallow: /users/password/new
|
|
||||||
Disallow: /users/register_requests/new
|
|
||||||
Disallow: /invite.html
|
|
||||||
Disallow: /thanks.html
|
|
||||||
|
|
||||||
User-agent: teoma
|
|
||||||
Allow: /*/*/tree/master
|
|
||||||
Allow: /*/*/blob/master
|
|
||||||
Disallow: /*/*/tree/*
|
|
||||||
Disallow: /*/*/blob/*
|
|
||||||
Disallow: /*/*/wiki/*/*
|
|
||||||
Disallow: /*/*/issues?*
|
|
||||||
Disallow: /*/*/commits/*
|
|
||||||
Disallow: /*/blame/
|
|
||||||
Disallow: /*/raw/
|
|
||||||
Disallow: /*.git
|
|
||||||
Disallow: /*.git/
|
|
||||||
Disallow: /search
|
|
||||||
Disallow: /users/sign_up
|
|
||||||
Disallow: /users/sign_in
|
|
||||||
Disallow: /users/password/new
|
|
||||||
Disallow: /users/register_requests/new
|
|
||||||
Disallow: /invite.html
|
|
||||||
Disallow: /thanks.html
|
|
||||||
|
|
||||||
User-agent: Yandex
|
|
||||||
Allow: /*/*/tree/master
|
|
||||||
Allow: /*/*/blob/master
|
|
||||||
Disallow: /*/*/tree/*
|
|
||||||
Disallow: /*/*/blob/*
|
|
||||||
Disallow: /*/*/wiki/*/*
|
|
||||||
Disallow: /*/*/issues?*
|
|
||||||
Disallow: /*/*/commits/*
|
|
||||||
Disallow: /*/blame/
|
|
||||||
Disallow: /*/raw/
|
|
||||||
Disallow: /*.git
|
|
||||||
Disallow: /*.git/
|
|
||||||
Disallow: /search
|
|
||||||
Disallow: /users/sign_up
|
|
||||||
Disallow: /users/sign_in
|
|
||||||
Disallow: /users/password/new
|
|
||||||
Disallow: /users/register_requests/new
|
|
||||||
Disallow: /invite.html
|
|
||||||
Disallow: /thanks.html
|
|
||||||
|
|
||||||
User-agent: CCBot
|
|
||||||
Allow: /*/*/tree/master
|
|
||||||
Allow: /*/*/blob/master
|
|
||||||
Disallow: /*/*/tree/*
|
|
||||||
Disallow: /*/*/blob/*
|
|
||||||
Disallow: /*/*/wiki/*/*
|
|
||||||
Disallow: /*/*/issues?*
|
|
||||||
Disallow: /*/*/commits/*
|
|
||||||
Disallow: /*/blame/
|
|
||||||
Disallow: /*/raw/
|
|
||||||
Disallow: /*.git
|
|
||||||
Disallow: /*.git/
|
|
||||||
Disallow: /search
|
|
||||||
Disallow: /users/sign_up
|
|
||||||
Disallow: /users/sign_in
|
|
||||||
Disallow: /users/password/new
|
|
||||||
Disallow: /users/register_requests/new
|
|
||||||
Disallow: /invite.html
|
|
||||||
Disallow: /thanks.html
|
|
||||||
|
|
||||||
User-agent: Telefonica
|
|
||||||
Allow: /*/*/tree/master
|
|
||||||
Allow: /*/*/blob/master
|
|
||||||
Disallow: /*/*/tree/*
|
|
||||||
Disallow: /*/*/blob/*
|
|
||||||
Disallow: /*/*/wiki/*/*
|
|
||||||
Disallow: /*/*/issues?*
|
|
||||||
Disallow: /*/*/commits/*
|
|
||||||
Disallow: /*/blame/
|
|
||||||
Disallow: /*/raw/
|
|
||||||
Disallow: /*.git
|
|
||||||
Disallow: /*.git/
|
|
||||||
Disallow: /search
|
|
||||||
Disallow: /users/sign_up
|
|
||||||
Disallow: /users/sign_in
|
|
||||||
Disallow: /users/password/new
|
|
||||||
Disallow: /users/register_requests/new
|
|
||||||
Disallow: /invite.html
|
|
||||||
Disallow: /thanks.html
|
|
||||||
|
|
||||||
User-agent: *
|
|
||||||
Disallow: /
|
|
Loading…
Reference in New Issue