重定向Heroku HTTPs://域名



为了提高我的网站的SEO,我想我的域名链接到一个主要网站的不同变化。

例如,现在https://example.com和https://www.example.com都访问同一个域名,被谷歌视为不同的网站。

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

我已经按照不同的教程Heroku(添加域)和DNSimple(添加别名),但没有工作。

让你的网站托管在两个不同的域名并不意味着提高SEO,事实上,它重复的内容,谷歌是不受欢迎的。

为了改善你的SEO,你应该对你想要共享为主域名的域名做一个301 redirect

关于设置首选域名(www或非www)。

关于设置重定向- Heroku如何重定向http://到http://www

这里有一些复杂的地方。

第一个复杂的情况是,您想要重定向使用HTTPs的主机名。事实上,通常情况下你可以使用DNSimple URL记录,但它不适用于https,因为你需要在DNSimple服务器上安装SSL证书(HTTP重定向头在https协商后发送)。

一种选择是在服务器级重定向,但由于你的应用托管在Heroku上,你无法控制服务器配置。

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

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

在DNSimple方面,你只需要创建一个ALIAS记录(如果你想要解析的主机名是一个顶级域)或一个CNAME记录(如果主机名是子域),它指向你的应用程序的相同Heroku SSL端点。

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

最新更新