网站没有打开谷歌搜索http到https

时间:2016-11-02 12:31:41

标签: google-chrome http heroku https dnsimple

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

当您在网址栏中输入这4个网址中的任意一个时,它就能正常工作。

但问题是,当我在谷歌搜索my website并点击链接时,它并没有打开,特别是与Internet Explorer&苹果浏览器。它给出了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个网站添加到谷歌搜索控制台;

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

btw已超过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现在它的工作原理。但那为什么呢?

1 个答案:

答案 0 :(得分:1)

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

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

据我记忆(我想,鉴于最近版本的Rails中recognize_path was removedrecognize_path会引发路由错误,以防无法找到路径。

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

request.referrer会返回3种不同类型的网址:

  1. 空白:没有推荐人时
  2. 外部网址:当访问者点击其他位置并访问您的应用时
  3. 内部网址:当访问者点击您应用中的某个位置时
  4. 除了第三个以外的所有情况,recognize_path都会引发错误。该错误将被默认的Rails处理程序捕获并显示为404(无法识别的路由导致生产中的404)。

    我不确定location_action_name应该做什么,但是现在实现它非常脆弱,在大多数情况下会导致你的应用中产生404响应。