网站打不开 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 removed)recognize_path
引发路由错误以防它可以找不到路径。
您将任意字符串传递给该函数,但该函数仅识别路由器内部描述的路径。
request.referrer
会 return 3 种不同类型的 URL:
- 空白:没有推荐人时
- 外部 URL:当访问者点击其他地方并到达您的应用程序时
- 内部 URL:当访问者点击您应用中的某处时
在除第三种情况外的所有情况下,recognize_path
都会引发错误。该错误将被默认的 Rails 处理程序捕获并显示为 404(无法识别的路由导致生产中的 404)。
我不确定 location_action_name
应该做什么,但现在实施时它非常脆弱,在大多数情况下会导致您的应用程序出现 404 响应。
我们有一个网站,我们的域在 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 removed)recognize_path
引发路由错误以防它可以找不到路径。
您将任意字符串传递给该函数,但该函数仅识别路由器内部描述的路径。
request.referrer
会 return 3 种不同类型的 URL:
- 空白:没有推荐人时
- 外部 URL:当访问者点击其他地方并到达您的应用程序时
- 内部 URL:当访问者点击您应用中的某处时
在除第三种情况外的所有情况下,recognize_path
都会引发错误。该错误将被默认的 Rails 处理程序捕获并显示为 404(无法识别的路由导致生产中的 404)。
我不确定 location_action_name
应该做什么,但现在实施时它非常脆弱,在大多数情况下会导致您的应用程序出现 404 响应。