首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据上次使用的变体将用户重定向到不同的网站变体?

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

Stack Overflow用户
提问于 2019-05-18 21:45:52
回答 1查看 34关注 0票数 0

我的网站有两个变体(比如说,A和B)。它们存储在服务器上的/a/ & /b/中。

在我的主页(/index.html)上,我想让用户选择(主要是一个按钮)要访问的变体。

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

这两个变种都需要切换到另一个。因此,如果用户切换到另一个(比如从A切换到B),我想将新的(B)设置为默认值,这样用户下次访问/index.html时就会被重定向到新的(B)。

重定向应该只在/index.html页面上起作用,所以如果用户通过直接输入URL访问不同的特定网页,他们不会被重定向。然而,偏好应该改变,也就是说,如果用户上一次访问了变体A,现在使用了变体B的网址,那么下次他/她访问/index.html时,他/她应该被重定向到B。

我说cookies和JavaScript可以帮助我实现这一点,这是在胡乱猜测。

有没有人能告诉我,我能不能做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-20 20:21:09

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

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

代码语言:javascript
复制
<?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文件:

代码语言:javascript
复制
<?php
if($_COOKIE['chosen_variant'] == "a")
 {header("Location: /a/index.php");}
elseif($_COOKIE['chosen_variant'] == "b")
 {header("Location: /b/index.php");}
else
 {}
?>
<html>
...
</html>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56199541

复制
相关文章

相似问题

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