重定向Heroku HTTPs://域

时间:2015-08-20 02:37:56

标签: ruby-on-rails redirect heroku dnsimple

为了改善我网站上的SEO,我希望将我的域名的不同变体链接到一个主要网站。

例如,现在https://example.comhttps://www.example.com访问同一个域,并被Google视为不同的网站。

我正在Heroku上托管我的Rails应用程序,然后连接到我通过DNSimple购买的域名。有谁知道如何让所有这些网站重定向到https://www.example.com

我已经关注Heroku(添加域名)和DNSimple(添加ALIAS)的不同教程,但没有任何效果。

2 个答案:

答案 0 :(得分:0)

保持您的网站托管在两个不同的域名并不意味着改进搜索引擎优化,事实上它重复谷歌的内容,不被赞赏。

要改善您的搜索引擎优化,您应该对要作为主域名共享的域进行301 redirect

关于setting your preferred domain (www or non-www)

设置重定向 - Heroku how to redirect http:// to http://www

答案 1 :(得分:0)

这里有一些并发症。

第一个复杂因素是您要重定向使用HTTP的主机名。实际上,通常您可以使用DNSimple URL记录,但需要it doesn't work with https,因为您需要在DNSimple服务器上安装SSL证书(在HTTPS协商后发送HTTP重定向标头)。

一个选项是在服务器级别重定向,但由于您的应用程序托管在Heroku上,因此您无法控制服务器配置。

因此,在您的情况下,唯一的选择是将各个域指向同一个Heroku应用程序,将域作为自定义域添加到您的Heroku应用程序并在内部处理重定向。这意味着您的应用应该检查请求是否来自其中一个备用域,如果是这样,它会重定向到规范域。

有几种方法可以在Rails应用程序中检查它。最有效的可能是使用自定义中间件或Rails路由器文件,以便尽快处理请求,并且它不会在应用程序中构建整个请求堆栈,因为它会发生在{{1 }}

在DNSimple方面,您只需要创建ALIAS记录(如果要解析的主机名是顶点域)或CNAME记录(如果主机名是子域),则指向相同的Heroku SSL端点你的申请。

然而,最后一个复杂因素是Heroku不允许为同一个应用程序提供多个证书。如果您要重定向到规范域的域名属于同一名称(例如子域名),则只需购买通配符证书即可。否则,如果要覆盖重定向中的多个不同域,则需要多域SSL证书。