ドメインの廃止に関連でバタバタしてしまい、本ブログの更新がおろそかになっておりますが、 わずかながらも旧ブログ(廃止ドメイン)にアクセスがありましたので、本ブログへのリダイレクトサイトを sinatra+Herokuで作ってみました。

個人的にsinatraはライトにWebアプリケーションが作成できるため、とても気に入っているフレームワークです。

やりたいこと

  • 旧ドメインのWebアクセスを本サイトに全てリダイレクトする
  • リダイレクト前にアナウンスページを表示させる
  • 作成にも運用にもコストをあまり掛けない。

コードを晒してみます

数日間だけのサービスですので、さらっと以下のようなコードを書いてみました。

require 'sinatra/base'

class App < Sinatra::Base
	before { request.path_info = "/redirect" }
  get '/redirect' do
		erb :redirect, :layout => false
  end
end

コードの説明

とりあえず、sinatraモジュラースタイルで記述しています。

今回、アクセスの全てをリダイレクトベージにするため、beforeフィルタを用いて全てのリクエストを 強制的にredirectに置き換えています。アナウンスページの表示がなければredirect <URI> 301 としちゃっても良いですよね。

次に、/redirectページではアナウンスページをerbのviewを使って表示しています。
ふとこのエントリーを書いてみると、別にテンプレートを利用しなくても/publicredirect.html 配置し、スタティックなページを指定しても良かったかなと思いました。

最後に

HerokuにFree Dynosとしてデプロイし、Custom DomainとDNSの設定をすれば完成です。

特に読者層とか気にせず「こんな事してみました記事」になってしまいスミマセン。
本ブログもよろしくお願いいたします。

以上です。