如何根据上次使用的变体将用户重定向到其他网站变体?

时间:2019-05-18 13:45:52

标签: javascript html web redirect cookies

我有2个网站变体(例如A和B)。 它们存储在服务器上的/ a /和/ b/。

在我的主页(/index.html)上,我希望为用户提供选择(主要是按钮)来访问哪个变体的选项。

然后,我想将该变体设置为用户的默认变体,因此,下次用户尝试访问index.html时,他/她将被重定向到上次访问的变体。

两个变体都将具有切换开关,以切换到另一个。因此,如果用户切换到另一用户(例如,A中的B),我想将新用户(B)设置为默认用户,以便下次他/她将用户重定向到新用户(B)访问/index.html。

重定向应该只在/index.html页面上有效,因此,如果用户通过直接输入URL访问特定于变体的网页,则不会被重定向。但是,应该更改首选项,即,如果用户上次访问变体A,而现在使用了变体B的URL,则他/她下次访问/index.html时,应将其重定向到B

我说cookie和JavaScript可以帮助我实现这一目标。

有人可以告诉我是否以及如何实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

不确定JavaScript,但是我是通过PHP实现的:

/a/中,我创建了一个index.php文件。它包含以下代码:

<?php
setcookie("chosen_variant","a",time()+86400*365,"/","domain.tld",1);
?>
<html>
...
</html>

setcookie()函数具有以下参数:

"chosen_variant"是cookie的名称, "a"是值, time()+86400*365表示有效期为365天, "/"表示它对整个域都有效, "domain.tld"表示它对domain.tld的所有子域均有效, "1"表示仅在安全连接上进行传输。

因此,当第一次在浏览器中加载/a/index.php时,它将设置一个名为chosen_variant且值为a的cookie,该cookie在365天后过期对我的整个域和所有子域均有效,并且仅在安全连接上转移。

然后,我在/b/中做了同样的事情。

然后,我使用以下代码在网站的根目录中创建了一个index.php文件:

<?php
if($_COOKIE['chosen_variant'] == "a")
 {header("Location: /a/index.php");}
elseif($_COOKIE['chosen_variant'] == "b")
 {header("Location: /b/index.php");}
else
 {}
?>
<html>
...
</html>