3

他のサブドメインへの301リダイレクトを作成するために、herokuをデプロイするためのラックアプリケーションを作成したいと思います。

パスが引き継がれるとしたら、それはいいことです。

次のコードから始めましたが、機能していません。

require 'rack-force_domain'

use Rack::ForceDomain, ENV["DOMAIN"]

run lambda { |env| [200, {'Content-Type'=>'text/plain'}, StringIO.new("Hello World!\n")] }
4

4 に答える 4

3

最終的に使用してこの問題を解決しましたsinatra。それは私のconfig.ruです:

require 'sinatra'

get %r{(.*)} do
  redirect to("http://custom.domain#{params[:captures].first}"), 301
end

run Sinatra::Application
于 2012-05-23T11:59:06.013 に答える
0

rack-rewrite - https://github.com/jtrupiano/rack-rewriteを見てください。達成したいことの例があります。

于 2012-05-21T10:37:01.093 に答える
0

@rriemann の回答を少し修正しました。パラメータを含めてフルパスをリダイレクトしたいことがわかりました。また、ユーザーが指定した文字列をそのように補間するのは危険ではありませんか? これは私のために働く:

require 'sinatra'

get "*" do
  redirect to("http://custom.domain" + request.fullpath), 301
end

run Sinatra::Application

また、誰かが必要な場合に備えて、私の実装へのgithub リンクを次に示します。

于 2015-12-22T15:24:47.193 に答える