| @技術/プログラミング

Lokkaで /article.php?id=数字 なURLへのアクセスをリダイレクトできました。

SinatraではURLの ? 以降のクエリストリングは request.query_string というオブジェクトの中に入るらしい。そういうわけなので次のようなコードでリダイレクト処理してます。

module Lokka
  module RedirectArticles
    def self.registered(app)
      app.get %r{/article.php} do
        unless request.query_string.empty?
          /id=(d+)?/ =~ request.query_string
          redirect "/#{$1}", 301
        end
      end
    end
  end
end

Sinatra、Lokka越しで初めて本格的に利用させもらってますけど便利ですね。