我有一个在heroku上的rails应用程序,我有一个自定义的.com域名。我将我的facebook app canvas url设置为domain.com,当我使用facebook登录时,它可以工作,但是当我到达www.domain.com时它会给我:
{
"error": {
"type": "OAuthException",
"message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration."
}
}
我如何在heroku修复此问题?
答案 0 :(得分:1)
Codeglot对我来说并不适合,但是使用他的元素,这样做了。
在你的application_controller中:
before_filter :check_url
#redirecting the herokuapp and www version of domain
def check_url
url = request.url
if url.include?('appname.herokuapp.com')
redirect_to ('http://domain.com')
elsif url.include?('www.domain.com')
redirect_to ('http://domain.com')
end
end
如果你使用竹子而不是雪松,那么用“heroku”替换“herokuapp”
答案 1 :(得分:0)
您需要将www.domain.com
和domain.com
添加到facebook API,或者在控制器中重定向,如果您位于www.domain.com
before_filter :ensure_domain
before_filter :get_filter
def ensure_domain
url = request.url
if url.include?('domain.heroku.com')
redirect_to url.gsup('domain.heroku.com', 'domain.com')
eslif url.include?('www.domain.com')
redirect_to url.gsup('www.domain.com', 'domain.com')
end
end
确保网址被正确替换,但应该这样做。
答案 2 :(得分:0)
我只想在您的域名托管服务商(GoDaddy,NameCheap等等)上设置网址重定向记录,无论您通过何种方式购买域名,都可以将所有www.yourapp.com
重定向到yourapp.com
,这一切都会发生在DNS服务器甚至到达您的应用服务器之前。
这是我最近回答的一个类似的问题(当他们希望所有yourapp.com
请求重定向到www.yourapp.com
但其完全相同的想法时,答案是相反的情况):{{3 }}
顺便说一句,这个方法会自动将它们重定向到末尾附加的任何路径。因此,点击www.yourapp.com/something
会将其重定向到yourapp.com/something
答案 3 :(得分:0)
这是我能找到的唯一一个没有导致无限重定向或其他问题的解决方案。希望它有所帮助。
答案 4 :(得分:0)
如果要重定向保持当前路径,可以在application_controller.rb中编写如下所示。
class ApplicationController < ActionController::Base
before_filter :check_uri
def check_uri
if request.host == "xxx.herokuapp.com" then
redirect_to request.protocol + "www.xxx.com" + request.fullpath
end
end