簡體   English   中英

網站未將Google搜索http打開為https

[英]Website not opening google search http to https

我們有一個網站,我們的域名在dnsimple上,服務器在heroku上。 我們在heroku和dnsimple上都使用ssl配置了所有必需的步驟。

當您在網址列中輸入以下4個網址中的任何一個時,它將起作用。

但是問題是,當我在Google上搜索my website並單擊鏈接時,它尤其是在Internet Explorer和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"):

我已將所有4個網站添加為google搜索控制台;

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

它已經超過24小時了。 對於Internet Explorer,我試圖刪除歷史記錄並刷新dns配置。 仍然沒有運氣。

編輯:沒有檢查作為引薦來源。 但是在應用程序控制器中有一個代碼可以顯示標頭或不顯示標頭,但是我認為這並不相關。

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,現在它可以工作了。 但是為什么呢?

此問題是由以下代碼片段引起的:

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

據我所記得(並且我猜,考慮recognize_path在最新版本的Rails中已刪除了ognize_path), recognize_path會引發路由錯誤,以防找不到路徑。

您正在將任意字符串傳遞給該函數,但是該函數僅識別路由器內部描述的路徑。

request.referrer將返回3種不同類型的URL:

  1. 空白:無推薦人時
  2. 外部網址:訪問者點擊其他位置並到達您的應用時
  3. 內部網址:訪問者點擊您應用中的某個位置時

在除第三種情況以外的所有情況下, recognize_path都會引發錯誤。 該錯誤將由默認的Rails處理程序捕獲並顯示為404(無法識別的路線導致404生產)。

我不確定location_action_name應該做什么,但是由於現在已實現,因此它非常脆弱,在大多數情況下,它將導致在您的應用中引起404響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM