我切换了应用的域名,重定向适用于使用http的网址,但是我在网上使用非重定向的HTTPS潜伏着一些链接。
例如,http://myolddomain.com重定向很好,但https://myolddomain.com结果只返回一般服务器错误。是否可以重定向这些链接?我正在使用rails 3和heroku。
更新:
我正在尝试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不匹配。”
答案 0 :(得分:1)
你能做到的一种方法是使用apache或nginx。他们都支持url重定向。您只需要指定两个规则,一个用于http,另一个用于https。虽然,我肯定你可以写一个正则表达式包括两者。
您可以在应用程序根目录中的.htaccess文件中编写自定义规则
有关详情,请参阅以下链接。
How do I get mod_rewrite working on Heroku?
答案 1 :(得分:0)
为了让您的网站甚至回复https://myolddomain.com,它需要拥有myolddomain.com的证书,否则它会因证书不匹配而失败,因为Heroku在所有应用上都默认使用通配符证书* .herokuapp.com - 在执行任何机架模块之前,将检查证书。
如果您想在Heroku处理https流量,您唯一的选择就是购买SSL并使用SSL端点插件。
或者,您可以使用外部服务器重定向旧域(带有已加载的证书)以重定向到Heroku上的新域。