1

我有一个网站http://www.scubastic.com,我将其用作 Ruby on Rails 开发和 SEO hacking 的游乐场应用程序。我遇到了一个我自己似乎无法解决的问题,它围绕着 SSL、SEO 和 Heroku。

TL;DR:我有一个 SSL 站点,但我禁用了它,但 Google 仍然记得 SSL 站点。当 SSL 站点仍然响应但出现证书错误时,如何让 Google 切换到非 SSL 站点?

基本上,当我第一次创建 Scubastic.com 时,我将 Heroku SSL 设置为学习它的练习。我设置了 Google Web Master Tools 并开始尝试 SEO 的各个方面。在我满意之后,我禁用了 Heroku SSL 并停止了每月的账单。

现在我有一个非常有趣的问题。Google 似乎无法忘记我网站的 HTTPS 版本,并且索引已经过时了。更糟糕的是,人们在 Google 中获得的链接会以 SSL 证书问题(*.herokuapp.com 证书与 www.scubastic.com 问题不匹配)打招呼,这对我的页面排名没有任何帮助。如果我手动单击 SSL 错误,我确实会到达该网站。我觉得这很奇怪,因为我完全删除了 Heroku SSL,应用程序仍然响应 SSL 请求……对我来说,这是 Heroku 中的一个错误,我希望我能更好地控制这种情况。唉,我转而尝试在应用层处理这个问题,因为 SSL 请求仍然会命中 Rails 堆栈(即使这些请求根本不应该响应!)

因此,如果有任何请求以 SSL 形式进入应用程序,我第一次尝试修复 Google 索引是设置 301 Moved Permanently 重定向。

class ApplicationController < ActionController::Base

  before_filter :redirect_ssl

  private 

  #only need this until Google doesn't link to HTTPS anymore
  def redirect_ssl
    if request.ssl?
      redirect_to "http://#{request.host_with_port}#{request.fullpath}", 
                  :status => :moved_permanently
    end
  end
end

如果你去谷歌搜索我的网站名称,你会看到我遇到的问题:

https://www.google.com/?q=scubastic

我基本上只是希望 Google 停止链接到我的 SSL 网站并使用最新内容进行刷新。

提前感谢您的帮助。

4

3 回答 3

1

我能够用我原来的帖子和很大的耐心解决这个问题。谷歌花了 5 天时间更新其索引,但现在谷歌提供给我的网站的链接是非 ssl 版本。

于 2013-02-18T13:43:47.130 回答
0

重定向目前无济于事,因为当浏览器在尝试建立与 Heroku 的 SSL 连接时获得无效证书时会出现问题,而那是在任何 HTTP 完成之前。我认为这不是 Heroku 的错误:您删除了 SSL(并暗示了证书),这让 Heroku 无法正确响应对您域的 SSL 连接请求。

以下是您可以执行的操作:

  1. 在 Heroku 上重新添加 SSL
  2. 添加您拥有的重定向
  3. 等待谷歌适应变化
  4. 移除 SSL
于 2013-02-15T22:56:32.163 回答
0

还可以选择主动要求 Google 删除该页面,因为它已经过时/不再可用:查看网站管理员工具帮助以了解如何“从 Google 中删除旧的或已删除的信息”

于 2015-04-14T09:01:54.123 回答