Как сделать редирект в PHP и JavaScript? - PullRequest
0 голосов
/ 13 сентября 2018

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

На основе этого ответа Я создал настраиваемую страницу 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");
}
?>

2ns попытка

На основе this и this ответы Я пытался преобразовать код на стороне клиента из 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?

...