$_SERVER["HTTP_HOST"] を調べて、ページへのアクセスに使用されたアドレスを確認し、必要に応じてhttps://apps.facebook/myApp/への 301 リダイレクトを実行します。
if ($_SERVER["HTTP_HOST"] == "Your domain") {
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://apps.facebook/myApp/");
}
else
{
... your app goes here.
}
?>
ただし、リダイレクトを実装する前に、$_SERVER["HTTP_HOST"] の値を表示するテスト ページを作成し、Facebook 内およびサイトから直接コードにアクセスします。それらが異なっていれば、問題ありません。
安全のために、私はこれを自分でテストします。
編集
実際、いくつかのテストを行ったところ、代わりに $_SERVER["HTTP_ORIGIN"] の存在を確認する必要があります。
Facebook から呼び出している場合は、存在し、Facebook のリンクが含まれています。サイト自体から来ている場合、それは存在しません。
何が起こっているかをよく理解するために、これを最初のプログラムにしてください。
<?php
echo "<pre>";
print_r($_SERVER);
echo "</pre>";
それがHTTP_ORIGINを見つけた方法です。
次に、上記を次のように置き換える必要があります。
<?php
if (isset($_SERVER['HTTP_ORIGIN']) && $_SERVER['HTTP_ORGIN'] === "https://apps.facebook.com"){
... your app.
}
else
{
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://apps.facebook/myApp/");
}
HTTP_ORIGIN の代わりに、HTTP_REFERER を使用できます。これには、facebook コンポーネントだけでなく、完全な URL が含まれている必要があります。そうしないと、誰かが Facebook アプリケーションをセットアップして、あなたのコンテンツにリンクする可能性があります。