网站打不开 google 搜索 http 到 https

Website not opening google search http to https

我们有一个网站,我们的域在 dnsimple 上,服务器在 heroku 上。我们在 heroku 和 dnsimple 上都使用 ssl 配置了所有必要的步骤。

当您输入这 4 个 url 中的任何一个到 url 栏时,它会起作用。

但问题是,当我在 google 上搜索 my website 并单击 link 时,它无法打开,尤其是在 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 配置。仍然没有运气。

编辑: 没有支票作为推荐人。但是有一个代码可以显示 header 或不显示在应用程序控制器中,但我认为这不相关;

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

编辑2: 我删除了下面的代码并推送到 heroku 现在它可以工作了。但这是为什么呢?

问题是由以下代码片段引起的:

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

据我所知(我猜,考虑到 Rails 的最新版本中的 recognize_path was removedrecognize_path 引发路由错误以防它可以找不到路径。

您将任意字符串传递给该函数,但该函数仅识别路由器内部描述的路径。

request.referrer 会 return 3 种不同类型的 URL:

  1. 空白:没有推荐人时
  2. 外部 URL:当访问者点击其他地方并到达您的应用程序时
  3. 内部 URL:当访问者点击您应用中的某处时

在除第三种情况外的所有情况下,recognize_path 都会引发错误。该错误将被默认的 Rails 处理程序捕获并显示为 404(无法识别的路由导致生产中的 404)。

我不确定 location_action_name 应该做什么,但现在实施时它非常脆弱,在大多数情况下会导致您的应用程序出现 404 响应。