2016-11-02 5 views
0

私たちはウェブサイトを持っており、ドメインはdnsimpleにあり、サーバーは英雄です。私たちはheroku & dnsimpleの両方でsslを使用して必要な手順をすべて設定しました。ウェブサイトが開かれていないGoogle検索のHTTPをhttpsに送信

これらの4つのURLのいずれかを入力すると、URLバーに機能します。

しかし、Googleでmy websiteと検索してリンクをクリックすると、特にインターネットエクスプローラ& safariで開かれていないという問題があります。それは404エラーを与える。

コンソールからのエラー。

ActionController::RoutingError (No route matches "https://www.google.com.tr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiU0JX39YnQAhWJEiwKHSq2BpQQFggcMAA&url=https%3A%2F%2Fwww.example.com%2F&usg=AFQjCNFg0D1KFk0WGvYOfUoVzNm19KDBYw&bvm=bv.137132246,d.bGg"): 

Google検索コンソールに4つのウェブサイトをすべて追加しました。

https://www.example.com 
https://example.com 
http://www.example.com 
http://example.com 

これは24時間以上経過しています。 Internet Explorerの場合、履歴を削除してdns configをフラッシュしようとしました。まだ運がありません。

編集: リファラーとしてのチェックはありません。しかし、ヘッダーを表示するか、アプリケーションコントローラーのように表示するコードがありますが、これは関係ないと思います。

before_filter :set_locale, :location_action_name 
def location_action_name 
    if !logged_in? 
     url = Rails.application.routes.recognize_path(request.referrer) 
     @last_controller = url[:controller] 
     @last_action = url[:action] 


    end 
    end 

EDIT2: 私は以下のコードを削除して、今それが動作Herokuのにプッシュ。しかし、それはなぜですか? recognize_pathそれができる場合には、ルーティングエラーが発生します(Railsの最近のバージョンでrecognize_pathwas removedがことを考えると、私は推測する、)私が覚えている限りでは

url = Rails.application.routes.recognize_path(request.referrer) 
    @last_controller = url[:controller] 
    @last_action = url[:action] 

+0

ルーティングがGoogleのURLを表示するのはなぜですか?リンクがクリックされたときにページにリダイレクトされますが、サイトがそのURLにアクセスできる唯一の方法はリファラーを経由することです。あなたのサイトは、リファラーやそのようなナンセンスに基づいてチェックを実行していますか? – CBroe

+0

は編集しました –

答えて

1

問題は、以下のコードによって引き起こされますパスを見つけることができません。

関数に任意の文字列を渡していますが、この関数はルータに内部的に記述されているパスのみを認識します。

  1. 空白:ときノーリファラー
  2. 外部URL:

    request.referrerはURLの異なる3種類を返します訪問者が他の場所をクリックすると、あなたのアプリ

  3. 内部URLに到達したとき:訪問者がどこかにクリックしたときあなたのアプリで

3つ目以外のすべてのケースでは、recognize_pathがエラーになります。このエラーは、デフォルトのRailsハンドラによって捕捉され、404として表示されます(認識されないルートは本番環境では404になります)。

location_action_nameさんは何をすべきか分かりませんが、今実装されているので非常に壊れやすく、ほとんどの場合、あなたのアプリで404反応を引き起こす結果になります。

関連する問題