2012-03-26 10 views
2

ıはfacebookアプリケーションを持っており、facebookまたはドメイン上で直接動作します。Facebookアプリケーション:ドメインからの直接アクセスをブロックする

だがそれは欲しくない。

www.mydomain.com/myapp //これはうまくいきません。あなたが行くべき

apps.facebook.com/myappの悪い英語のための

申し訳ありません。

誰でも私を助けることができます、私はうれしいです。 URLによって

+0

[フェイスブックキャンバスアプリの直接/外部のアクセスを禁止](http://stackoverflow.com/questions/6295741/prevent-facebook-canvas-app-from-being-accessed-directly-outside -of-facebook) – ceejayoz

答えて

1

は、ユーザーが行きたい場所へのリダイレクトを実行します。

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.zpのようなページが増えます。 – bayburt

+0

おそらくそれは良いですか? – exomic

+0

誰かがmydomain.com/myappにアクセスした場合、彼がアプリにアクセスしないようにしてください。リダイレクトやエラーを表示する(あなたが最初にフェイスブックに行く必要がある)どのようにıことができます。 – bayburt

0

Same-Origin Policyのためにapps.facebook.comフレームを確認する良い方法はありません。私はあなたがすべてで、このようなJavaScriptでフレーム内にある場合にだけ検出のルートを行くのをお勧めしたい:

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

それはあなたをiframingから他の誰かを防ぐことはできませんが、少なくともあなたのドメインはあなたをリダイレクトしますFacebookページへ。

関連する問題