次のように、サイトに登録した .com 以外のすべてのドメインをキャプチャする単純な 301 リダイレクトがあります。
DOMAIN = 'www.mywebsite.com'
use Rack::Rewrite do
r301 %r{.*}, "http://#{DOMAIN}$&", :if => Proc.new {|rack_env|
rack_env['SERVER_NAME'] != DOMAIN && ENV["RACK_ENV"] == 'production'
}
end
元のドメインを次の形式で追加するために、応答にクエリ文字列を追加したい
?utm_source=#{rack_env['SERVER_NAME']}
しかし、サーバーをクラッシュさせない方法を完全に理解することはできません:)それを実行して、元のクエリ文字列を保持できますか?
誰かがメイン ドメインの下のサブページにアクセスする可能性は低いですが、書き直しから $& を削除し、それを自分の文字列に置き換えると、ログにエラーが表示されずに爆発します...