web-dev-qa-db-ja.com

$ _SERVER ['HTTP_REFERER'];からルートドメインのみを選択するにはどうすればよいですか?

ユーザーが自分のサイト、短縮URL、または別のサイトのいずれかを介してそのページにアクセスしたかどうかを検出できる404ページが必要で、PHPを使用して作成しています。 PHPと徐々に理解し始めています。これは簡単な質問かもしれませんが、正直に言ってシステムにカフェインがないので、とても疲れています。できるだけ早く私のポートフォリオのルーズエンド。

$_SERVER['HTTP_REFERER']; PHP変数は、最初にURL全体を提供します。これが別の変数または一部の参照元がhttp://と一部のhttps://を使用している可能性があることを念頭に置いて関数(つまり、7番目の文字から開始するだけでは常に機能するとは限りません)?このように、2つ(またはそれ以上) )事前定義されたアドレスとそのドメインに関連するコンテンツを作成します。

27
Nathan Bunn
parse_url($_SERVER['HTTP_REFERER'], PHP_URL_Host)

http://php.net/manual/en/function.parse-url.php を参照してください。

ただし、リファラーはスプーフィングが非常に簡単であるため、信頼性はほとんどありません。

46
deceze

http://php.net/manual/en/function.parse-url.php が最善の策かもしれませんが、正規表現を使用して簡単に探しているものを実現することもできます。

3
Dan LaManna

これは行う必要があります:

 $_SERVER['SERVER_NAME']
1
Matoeil