2014-03-04 92 views
0

我切换了我的应用程序的域名,并且重定向适用于使用http的url,但是我有一些链接在使用HTTPS而不是重定向的网络上。是否有可能重定向使用HTTPS协议的网址? (Heroku,Rails)

例如,http://myolddomain.com重定向就好,但https://myolddomain.com结果只是返回一个通用的服务器错误。有没有可能重定向这些链接?我正在使用rails 3和heroku。

UPDATE:

我想了rack-rewrite gem。下面是我添加到我的生产环境文件中的代码:

#mod_rewrite using rack-rewrite gem 
config.middleware.insert_before(Rack::Lock, Rack::Rewrite) do 
    rewrite '^https://www.myolddomain.com/(.*)$', 'https://www.mynewdomain.com/$1' 
    rewrite '^https://myolddomain.com/(.*)$', 'https://www.mynewdomain.com/$1' 
end 

它成功地重定向https://myolddomain.com但不https://www.myoldomain.com。它也为ssl证书抛出一个错误,“服务器的证书与URL不匹配。”

回答

1

你可以做到的一种方法是使用apache或nginx。他们都支持url重定向。您只需要指定两个规则,一个用于http,另一个用于https。虽然,我肯定你可以写一个正则表达式来包含两者。

你可以在应用程序的根

请参阅下面的信息链接.htaccess文件编写自定义规则。

How do I get mod_rewrite working on Heroku?

http://wiki.nginx.org/HttpRewriteModule

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

+0

谢谢,我发现了一个gem:rack-rewrite。它有点作品。它会重定向https://myolddomain.com,但不会https://www.myolddomain.com。它还会引发证书不匹配警告。 –

0

为您的网站甚至https://myolddomain.com回应就需要有myolddomain.com否则它会与证书不匹配的失败,因为Heroku的有证书通配符证书* .herokuapp.com默认情况下在所有应用程序上 - 证书将在任何机架模块执行之前进行检查。

如果您想在Heroku中处理https流量,您唯一的选择将是购买SSL并使用SSL端点插件。

或者,您可以使用外部服务器将旧域(带有加载的证书)重定向到Heroku上的新域。

相关问题