如果直接点击主机网址,则将Facebook应用重定向到画布网址

时间:2012-03-20 12:09:35

标签: php facebook codeigniter

我有基于iframe的脸书应用程序,我只想做的是,每当有人直接点击应用程序网址时,http://mysite.com必须重定向到我的脸谱广告网址,这个应用说http://apps.facebook.com/mysite。这似乎很容易,但不幸的是它没有点击我的想法

任何帮助将不胜感激

修改

该应用程序位于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转换

另外一个建议也是因为你看到我在htaccess中使用prepend只是为了获得用户时区的某些日期时间的东西,这样很好用吗?该文件实际上为用户首次访问每个会话的网站设置了一个cookie

最诚挚的问候 朱奈德

3 个答案:

答案 0 :(得分:1)

来自Facebook的应用的任何画布页面都会定义$_REQUEST['signed_request']。您可以检查此请求变量是否存在,如果未设置,则重定向到Facebook。

答案 1 :(得分:0)

据我所知,没有任何服务器端编码可以这样做...那么又怎么可能因为它在事情的前端发生了什么你可以做的就是使用像这样的javascript

if(window!=window.top){i am iframed now redirect or w/e you wanna do}

答案 2 :(得分:0)

由于您要将域名重定向到应用程序,而不是相反,因此应用程序位于iFrame中的事实并不重要。

在我看来,最好的方法是使用.htaccess。这意味着您可以使用自定义URL,例如mydomainname.com/mypagename/,它会重定向到apps.facebook.com/myappname/mypagename/,这样您就可以更轻松地宣传您的应用。另一个好处是您不必依赖Javascript。有些人(非常少量)将其关闭,但为什么要解析所有PHP代码呢?

因此,您可以做的是让根域“空白”并且只在.htaccess文件中包含以下内容:

RewriteEngine on
RewriteRule ^$ http://www.mydomainname.com/ [R=301,L,QSA]
RewriteRule ^/(.*) http://www.mydomainname.com/$1 [R=301,L,QSA]

QSA还会将查询参数附加到目标网址,例如“?ref = email”。

当然,如果您将应用代码保存在同一个域中,在root中,您根本不需要做任何事情,只需调整您的身份验证代码即可。

如果这不适合您,请告诉我们更多详情:

  • 应用“在哪里”
  • 如果应用程序位于mydomainname.com中,当您直接访问该网址时会发生什么?
  • 你如何进行身份验证?

显然,代码有帮助。

除非mydomainname.com不是特定于该应用,否则我建议您在子域上托管实际的应用。实际上,无论如何,都应该帮助你组织起来。或者您也可以使用Facebook登录选项将应用程序accessibile作为网站。

干杯