[英]Facebook redirects to canvas url instead of the app on facebook
[英]redirect facebook app to canvas url if host url is hit directly
我有一个基于iframe的Facebook应用程序,我只想做的是,只要有人直接点击该应用程序的URL, http://mysite.com都必须重定向到该应用程序的我的Facebook画布URL,例如http://apps.facebook.com/我的网站 。 这似乎很简单,但不幸的是它没有在我的脑海中点击
任何帮助,将不胜感激
编辑
该应用程序在codeigniter中
编辑
htaccess的
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
php_value error_reporting 7
php_flag display_errors On
php_value auto_prepend_file prepend.php
说我的域名是
http://abc.com/mysitefolder
我的Facebook应用程序链接是
http://apps.facebook.com/myappname
请也考虑http和https转换
也是guyz的一个建议,就像您看到的那样,在htaccess中使用prepend只是为了获取某些日期时间的用户时区,这样做很好吗? 该文件实际上是在每次会话首次访问该网站时为用户设置一个Cookie
最好的问候Junaid
来自Facebook的应用程序的任何画布页面都将定义$_REQUEST['signed_request']
。 您可以检查此请求变量是否存在,如果未设置,请重定向到Facebook。
据我所知,没有任何服务器端代码可以执行此操作...那么又怎么可能发生,因为这一切都发生在前端,因此您可以使用javascript这样
if(window!=window.top){i am iframed now redirect or w/e you wanna do}
由于您要将域名重定向到应用程序,而不是其他方式,因此该应用程序位于iFrame中的事实无关紧要。
我认为最好的方法是使用.htaccess。 这意味着您可以使用诸如mydomainname.com/mypagename/之类的自定义URL,它们将重定向到apps.facebook.com/myappname/mypagename/,因此您可以更轻松地宣传您的应用程序。 另一个好处是您不必依赖Javascript。 有些人(数量很少)将其关闭,但是为什么要解析所有PHP代码来做到这一点呢?
因此,您可以做的是拥有根域“ blank”,并且在.htaccess文件中仅包含以下内容:
RewriteEngine on
RewriteRule ^$ http://www.mydomainname.com/ [R=301,L,QSA]
RewriteRule ^/(.*) http://www.mydomainname.com/$1 [R=301,L,QSA]
QSA还将查询参数附加到目标URL,例如“?ref = email”。
当然,如果您将应用程序代码保留在相同的域中,则在根目录中,您实际上不需要执行任何操作,只需调整身份验证代码即可。
如果这对您不起作用,请向我们提供更多详细信息:
显然,代码有帮助。
除非mydomainname.com并非特定于该应用程序,否则建议将实际的应用程序托管在子域中。 实际上,无论如何,都应该帮助您进行组织。 或者,您可能还希望通过Facebook登录选项使该应用程序可作为网站使用。
干杯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.