今回はEC-CUBE3でどのようにリファラーを取得するかというお話がメインです。

各ページのコントローラでは、リファラーを簡単に取得することができます。

コントローラーのアクションメソッドに次のような形で$request変数が渡されてきます。

public function index(Application $app, Request $request)
{
......
}

 

この$requestはHTTPリクエストに関する多くの情報を含んでいます。

もちろんヘッダー情報も含むので下記のようにしてリファラを取り出してやります。

$referer = $request->headers->get('referer');
if($referer != 'hoge'){
    return $app->redirect($app->url('homepage'));//トップページへリダイレクト
}

これでリファラーの値を使用してアクセス禁止にしたりリダイレクトで飛ばすことができますね。

リファラーは確実な物ではありませんが、簡易的なアクセス制御としては有用です。

EC-CUBE3系をご利用の方はぜひお試しください。(あまり機会はないと思いますが・・・)