• 締切済み

PHPによるリダイレクトについて

ある程度の規模のサイトで、自社のURLになっているのにクリックすると外部にリンクしている設定を見ますが一体どうやっているのでしょうか? 例えば、ECナビだと http://ecnavi.jp/bid/?BID=64095 ↑コンタクトレンズのサイトにリンク アットコスメ http://i-pas.cosme.net/i-pas/asp/bnr/bnr0011.asp?bnr_id=3413 ↑口紅にサイトにリンク というような形です。(もしかしたら使っている技術は違うかもしれませんが) お忙しいところ申し訳ありませんが正直よくわからなくて困ってます!力をお貸し頂けると幸いです。よろしくお願いします。

みんなの回答

回答No.2

PHPなら こんなんでどうでしょうか。 <?php // GETで渡されたidの値を変数$idに落とす。 $id = $_GET["id"]; // 正規表現によりGETで渡されたIDに不正な値がないか if (ereg("^[0-9]*$", $id)) { // 値に問題がない場合 // ここに必要な処理を。 // よくある例ですが、 // データベースからURLをGETで渡されたIDを元に検索 // ヒットした値が見つかれば変数 $urlに落とし、 // アクセス記録を採る。 // データベースから見つからなければエラーメッセージを出力 // ヘッダー関数でLocation: ヘッダーを出力し任意のページに飛ばす。 header("Location: " . $url); } else { // 値に問題がある場合 echo "<B>不正呼び出しです。</B>"; } ?>

sasuke67
質問者

お礼

ふむふむ。勉強になります。 このほうほうだとLocationで任意のページに飛ばすのですね。なるほど。勉強になりました。ありがとうございました。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 基本的にデータベースとの連携で実現していると思います。 ページID,ページURL,参照回数(多分) を1レコードにして情報を持ち、リダイレクト用のPHPスクリプトに IDを投げると、そのIDを使用してURLを取得し、リダイレクトをかけてると 思います。 また、投げる前に参照回数を加算することにより、アクセス数を把握 することができ、ランキング等にも使用することが可能になります。 データベースを使わなくとも、外部ファイルを使用しても可能でしょう。 または、IDをスクリプトに直接IDと関連するURLを記入しても実現は可能です。 (多くはデータベースを利用していると思われます。管理、運用面でとても楽です)

sasuke67
質問者

お礼

なるほど。ありがとうございます。勉強になります。 私としてはデータベースと連動させる必要はないので、その部分を除いてどんな方法があるのかを具体的に知りたいと思っています。

関連するQ&A