2

わかりました。Google/検索エンジンの一貫性を保つために、www以外のすべてのドメインリクエストをwww.mydomain.comにリダイレクトしたいと思います(正規のタグ/ googleウェブマスターツールについてはすべて知っているので、無視しましょう)

Nginx(またはApacheの場合はhtaccess)を介してこれを行う標準的な方法を知っています。

ただし、これによりユーザーセッションが中断される可能性があります。たとえば、誰かがdomain.comからログインした場合、そのCookieは、www.domain.comではなくdomain.comでのみ有効になるため、リダイレクトすることで、すべてのユーザーが再度ログインする必要があります。

ユーザーセッションを中断せずにリダイレクトを行う方法はありますか?

おそらく私はクッキーをチェックする場所で何かをすることができますか?存在しない場合は、リダイレクトを実行します。含まれている場合は、リダイレクトしないでください。

def index #controller method for requests from domain.com or www.domain.com
   @user = @requestManager.authorizedUser(cookies, params, logger) //check for cookies

   #if no cookies (Google bot or new visitor) 
   #and request is from domain.com, redirect to www.domain.com

   if(@user == nil and request.host =~ /^domain.com/)
            logger.info("Redirecting")
            redirect_to "http://www.domain.com", :status => 301
            return
    end
end

これは、www以外をwww.domain.comにリダイレクトし、現在のユーザーセッションを中断しないようにするために機能しますか?

4

1 に答える 1

0

Cookieのドメインが明示的に設定されていない場合、Cookieが設定されたサイトのホスト名に制限されます。

あなたのユーザーがあなたが本当に大切にしている長期のセッションを持っているなら、これはあなたの目標を達成するかもしれません:

  1. すべてのCookieでドメインを設定するようにサイトを変更します。
  2. firebugを使用して、ユーザーがサイトにアクセスしたときにCookieが新しいドメインで再発行されることを確認します
  3. 少なくともほとんどのユーザーがシットにアクセスするまでしばらく待ちます
  4. リダイレクトを有効にする

セッションが失われるユーザーは、待機期間中にサイトにアクセスしなかったユーザーです。

于 2012-04-19T02:22:02.363 に答える