Как сделать редирект на php и javascript?

Описание проблемы

На основании ответа это я создал настраиваемую страницу PHP для WordPress. Страница делает следующее: когда я перехожу на www.mysite.com/wp/GoTo/?URL=http://www.google.com, браузер перенаправляет на www.google.com.

Проблема в том, что я хотел бы использовать Google Analytics для регистрации доступа к странице, в частности, когда пользователь обращается к ссылке, такой как следующий www.mysite.com/wp/GoTo/?URL=http://www.google.com&utm_campaign=MyChampaign.

Другими словами, у меня есть страница перенаправления PHP

<?php


    /*
    Template Name: GoToPage
    */

    /**
     *
     * @package MyTheme
     */

    $url = $_GET["URL"];

    // Remove all illegal characters from a url
    $url = filter_var($url, FILTER_SANITIZE_URL);

    if (filter_var($url, FILTER_VALIDATE_URL)) {
        header("location: " . $url);
        exit;
    } else {
    echo("$url is not a valid URL");
    }
    ?>

И мне нужно вставить фрагмент Google Analytics.

1-я попытка

Это не работает. Думаю, проблема в том, что для перенаправления я должен выводить ТОЛЬКО заголовок и ничего больше.

<?php


/*
Template Name: GoToPage
*/

/**
 * The template for displaying all pages.
 *
 * This is the template that displays all pages by default.
 * Please note that this is the WordPress construct of pages
 * and that other 'pages' on your WordPress site will use a
 * different template.
 *
 * @package MyTheme
 */

$url = $_GET["URL"];

// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);

if (filter_var($url, FILTER_VALIDATE_URL)) {
    <script type="text/javascript" >
    window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
    ga('create', 'UA-11111111-0', 'auto');
    ga('send', 'pageview');
    </script>
    header("location: " . $url);
    exit;
} else {
echo("$url is not a valid URL");
}
?>

2нс попытка

Основываясь на ответах это и это, я попытался преобразовать код на стороне клиента из HTML в код JavaScript. Это дает мне ошибку 404 для каждой попытки, которую я сделал.

<?php


/*
Template Name: GoToPage
*/

/**
 * The template for displaying all pages.
 *
 * This is the template that displays all pages by default.
 * Please note that this is the WordPress construct of pages
 * and that other 'pages' on your WordPress site will use a
 * different template.
 *
 * @package MyTheme
 */

$url = $_GET["URL"];

// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);

if (filter_var($url, FILTER_VALIDATE_URL)) {
    echo """
        <head>
        <script type="text/javascript" >
            window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
            ga('create', 'UA-11111111-0', 'auto');
            // Plugins

            ga('send', 'pageview');
        </script>
        </head>
        <body onload="onWindowLoad()">
        <script>
            window.location.replace(".$url.");
        </script>
        <p>If the page does not automatically redirect please click on<a href=".$url.">this link</a>.</p>
        </body>
    """;
    exit;
} else {
echo("$url is not a valid URL");
}
?>

Есть идеи о том, как включить фрагмент GA на мою настраиваемую страницу перенаправления PHP?

Ваша аналитика должна идти на страницу, на которую вы перенаправляете. Вы не можете отправлять вывод с перенаправлением местоположения, и заголовки обязательно должны быть до того, как какой-либо контент будет отражен

charlietfl 13.09.2018 20:44

@charlietfl Я использую это для перенаправления на внешнюю страницу. Я не могу включить сюда какой-либо код. Например, если я перенаправляю на Yahoo.it, я не могу включить какой-либо код на главную страницу Yahoo.

Nicolaesse 13.09.2018 20:46

Почему вы не можете отследить это на любой странице, на которой пользователь отправлял текущий GET с URL-адресом goTo? Может отправлять сообщение в GA, когда пользователь отправляет форму или нажимает на ссылку

charlietfl 13.09.2018 20:54

Это было бы хорошим обходным путем, но: 1. Я точно не знаю, как это сделать ... не могли бы вы сослаться на какой-нибудь учебник или сказать мне, что искать в Google? 2. большая часть ссылки отправляется по электронной почте, будет ли она работать, если щелкнуть ссылку из MS Outlook, приложения Gmail, браузера, ...?

Nicolaesse 13.09.2018 23:13
0
4
36
0

Другие вопросы по теме