首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将页面重定向到另一页10秒,然后再重定向到原始URL

将页面重定向到另一页10秒,然后再重定向到原始URL
EN

Stack Overflow用户
提问于 2019-07-11 12:39:44
回答 2查看 1.7K关注 0票数 0

我想暂时将用户重定向到一个广告页面,然后在10秒后再将他们返回到他们想要的页面。

我不知道如何做到这一点,因为我不太了解PHP或Java。所以请给我提供完整的重定向代码,并指导我把代码放在哪里。

我在首页使用$_GET参数,所以假设我的urls如下所示:

代码语言:javascript
复制
mydomain.net/games/?game=PUBG+Mobile&Rating=5
mydomain.net/games/?game=Apex+Legends&Rating=4
mydomain.net/games/?game=GTA+5&Rating=4.5

我希望每个url重定向到ads.php页面,然后在10秒后重定向回原始url,再也不会重定向。

EN

回答 2

Stack Overflow用户

发布于 2019-07-11 12:43:26

首先:Java !== Javascript

Java和Javascript是相似的,就像Car和Carpet一样。

来源:https://stackoverflow.com/a/245068/3119231

-

若要将用户重定向到其他位置,您可以使用:

代码语言:javascript
复制
// Simulate a mouse click:
setTimeout(function() { // timer
    window.location.href = url;
}, 10000); // 10000 ms = 10 seconds

// Simulate an HTTP redirect:
setTimeout(function() { // timer
    window.location.replace(url);
}, 10000); // 10000 ms = 10 seconds

把它放在你喜欢的文件里。

来源:webpage.asp

奖励(CaitLAN Jenner):您需要防止文档在无限循环中重定向。你的访问者会每10秒从一个站点被推送到另一个站点。

票数 2
EN

Stack Overflow用户

发布于 2019-07-11 13:04:39

@Maurice提到了如何在JavaScript中执行HTTP重定向。但是,如果您在两个页面上都这样做,那么您将发现自己处于一个无限重定向循环中,这是非常糟糕的。为了扩展这个答案,这里有一些PHP可以通过使用查询字符串参数动态地禁用从原始页面的第二个重定向(请参见string)。

首先,您需要在文档的顶部包含以下PHP代码。如果您有其他PHP代码,只需将此代码的内部放在下面即可。这将接受重定向查询字符串。

代码语言:javascript
复制
<?php

$redirect = 1

if (isset($_GET['redirect'])) {
    $redirect = htmlspecialchars($_GET["redirect"]);
}

?>

现在,在文档的后面(最好是在正文的末尾或头部),您需要使用PHP本身动态地生成JavaScript。

代码语言:javascript
复制
<?php
if ($redirect == 1)
{
    echo "<script>";
    echo "// Simulate an HTTP redirect:";
    echo "setTimeout(function() { // timer";
    echo "window.location.replace(url);";
    echo "}, 10000); // 10000 ms = 10 seconds";
    echo "</script";
}
?>

请注意,这里需要用适当的url替换"url“,这可能需要正确转义引号(请参阅https://www.php.net/manual/en/function.addslashes.php)。

最后,您需要在重定向回原来的页面上适当地设置“重定向”查询字符串。您可以这样做:

mydomain.net/games/?game=PUBG+Mobile&Rating=5&redirect=0

在第二个页面上,每个请求更新一次,您不需要上面提到的逻辑。您只需要一个JavaScript 10秒重定向即可。像这样的东西应该管用。

代码语言:javascript
复制
<script>
url = "mydomain.net/games/?game=PUBG+Mobile&Rating=5&redirect=0";

// Simulate an HTTP redirect:
setTimeout(function() { // timer
window.location.replace(url);
}, 10000); // 10000 ms = 10 seconds
</script>

注意,这里我使用了一个静态URL。如果您希望这个URL是动态的,您可以使用我提到的解决无限重定向的完全相同的方法。换句话说,将原始URL作为查询字符串参数传递给广告页,通过PHP在广告页面上解析它,并使用PHP动态地在上面的代码中创建url。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56989430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档