2012-03-26 127 views
2

我有一个Facebook应用程序,它可以在Facebook或直接在域上工作。Facebook应用程序:阻止从域名直接访问

但我不想要它。

www.mydomain.com/myapp //这不应该工作。

你应该去:

apps.facebook.com/myapp

抱歉不好英语。

任何人都可以帮助我,我会很高兴。

+0

[预防脸书画布应用程序被直接/在Facebook之外访问]的可能重复(http://stackoverflow.com/questions/6295741/prevent-facebook-canvas-app-from-being-accessed-directly-outside -of-facebook) – ceejayoz 2012-03-26 21:24:00

回答

1

根据URL进行重定向到您想要用户去:

if ($_SERVER["SERVER_NAME"] != "apps.facebook.com") 
{ 
header('Location: http://apps.facebook.com/myapp'); 
} 

如果你只希望您的domain.com apps.facebook.com

if ($_SERVER["SERVER_NAME"] != "apps.facebook.com" && $_SERVER["SERVER_NAME"] != "mydomain.com") 
{ 
header('Location: http://apps.facebook.com/myapp'); 
} 

或通过该文件夹中的.htaccess把

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www.mydomain.com$[OR] 
RewriteCond %{HTTP_HOST} ^mydomain.com$ 
RewriteRule ^(.*)$ http://apps.facebook.com/myapp/$1 [R=301,L] 

或者干脆在你的PHP页面

的顶部
if ($_SERVER["SERVER_NAME"] != "apps.facebook.com") 
{ 
echo "Error please visit my apps via facebook"; 
return 
} 
+0

ı当用户访问myapp/x.php时,会有更多页面像http://apps.facebook.com/myapp/x,y,z.php会发生什么? – bayburt 2012-03-26 21:09:59

+0

也许这样更好? – exomic 2012-03-26 21:14:36

+0

如果有人访问mydomain.com/myapp,我不希望他访问应用程序。重定向或显示错误,如(你需要首先去Facebook)如何做到这一点。 – bayburt 2012-03-26 21:16:26

0

由于Same-Origin Policy因为Same-Origin Policy,所以不会有检查apps.facebook.com框架的好方法。我建议你只是要检测的途径,如果你是在一个框架都在JavaScript这样的:

if(window == window.top) window.top.location='http://apps.facebook.com/whatever/';

它不会阻止别人从你iframing但至少你的域名将您重定向到Facebook页面。