PHPでのリダイレクト Analytics意識

サーバーサイドでリダイレクトする方法(PHP)

Analyticsも意識。
日付で飛ばす先を変えてる

<?php
header('Content-Type: text/html; charset=Shift_JIS');

// UTMパラメータの定義
$utm_params = array(
    'utm_source',
    'utm_medium',
    'utm_campaign',
    'utm_term',
    'utm_content'
);

// 現在のURLのクエリパラメータを取得
$current_params = array();
if (!empty($_SERVER['QUERY_STRING'])) {
    parse_str($_SERVER['QUERY_STRING'], $current_params);
}

// リダイレクト先の決定
$day = (int)date('j');
$redirect_base = ($day % 2 === 0) ? 'index_1.html' : 'index_2.html';

// パラメータの収集
$params = array();

// リファラーの処理
if (isset($_SERVER['HTTP_REFERER'])) {
    $params['ref'] = urlencode($_SERVER['HTTP_REFERER']);
}

// UTMパラメータの転送
foreach ($utm_params as $utm_param) {
    if (isset($current_params[$utm_param])) {
        $params[$utm_param] = urlencode($current_params[$utm_param]);
    }
}

// URLの組み立て
$redirect_url = $redirect_base;
if (!empty($params)) {
    $query_string = http_build_query($params);
    $redirect_url .= '?' . $query_string;
}

// 301リダイレクトを実行
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . $redirect_url);
exit();
?>