2011-03-15 4 views
0

私はメインのサイトを指しているAレコードを持つ短いURLドメインを持つサイトを持っています(これを変更するのは痛みです。アプリケーションに短いURLからアクセスするときに実行する必要がある特別なロジックがあります。Apacheのリダイレクトでリファラー/ヘッダーを設定する

私は、短いURLにヒットしたときに301をメインサイトにするためにRewriteRuleを設定しましたが、リファラーやヘッダーにアクセスしようとすると、消えてしまったようです。私は、クエリパラメータを追加することでこれを回避することができますが、私はむしろ同様にURLを泥ではないでしょう。私のRailsアプリケーションでアクセスできるApache内のデータをいくつか設定して、リクエストが短いURLにアクセスした結果であるかどうかを知る方法に関するアイデア?

答えて

0

リファラは完全にクライアント側であるので、あなただけの(クエリ文字列以外の)2つのオプションがあります。、Railsはあなたのためのリダイレクトを処理することを許可する代わりにApacheの、およびいくつかの情報を格納し

  1. をユーザーのセッションで

  2. cookie RewriteRuleオプションを使用してください。 RewriteRuleにはCookie/COオプションがあり、ブラウザにSet-Cookieをリダイレクトレスポンスと共に送信することができます。オプションのフォーマットはcookie|CO=NAME:VAL:domain[:lifetime[:path]]です。詳細は、RewriteRule documentationを参照してください。

+0

は私がCookieを設定しようとしたが、私は、ページのレンダリング後に、それが設定されて見ていないよ: の のServerName shorturl.com RewriteEngine上 するRewriteCondの%{HTTP_HOST}^SHORTURL \。 com] [NC] RewriteRule ^(。*)$ http://longurl.com/$1 [R = 301、NC、CO =ショートカット:はい:.longurl.com:/] rdeshpande

+0

@rdeshpande有効期限のパラメータを忘れてしまった。有効期限に '/'を指定しているので、おそらく即時に期限切れになります。 –

0

厳密なパフォーマンス上の理由から、私はApacheにリダイレクトを行い、ラックに入れる必要はありません(もっと時間を費やす)。したがって、私はRewriteRuleにクッキーを設定し、リダイレクトを検出するとクッキーを破棄します。

関連する問題