条件缓存页面重定向

时间:2016-01-06 20:19:50

标签: javascript php wordpress browser-cache url-redirection

我正在尝试根据网站查看者的选择设置条件缓存重定向。

以下是我希望如何使用网站功能的示例(您可以通过访问vonage.com进行测试):

当我访问www.vonage.com时,我可以选择“个人,小型企业,中型市场和企业”。

做出选择后,您将被发送到关联的网站/子域名--vonage.com,personal.vonage.com或enterprise.vonage.com。

然后,如果您尝试返回带有选项的初始页面,您将无法重新定向到您已经做出的选择。

这是怎么做到的?我想实现类似的东西。我顺便使用Wordpress,但这可能无关紧要,我可以在代码或.htaccess中弄脏。

2 个答案:

答案 0 :(得分:0)

可能有更好的方法,这只是java脚本而不是php,但cookie应该可以解决问题。

页面加载检查cookie是否存在,是否重定向,如果不存在,则检查:

if (document.cookie.indexOf("home") >= 0) {
 // redirect them to home
}
else if (document.cookie.indexOf("business") >= 0) {
 // redirect them to business
}
else if (document.cookie.indexOf("enterprise") >= 0) {
 // redirect them to enterprise
}

如果这些都没有触发,并且用户在选择设置其Cookie的选项时未被重定向,例如:

// set a new cookie
expiry = new Date();
expiry.setTime(date.getTime()+(10*60*1000)); // Ten minutes

// Date()'s toGMTSting() method will format the date correctly for a cookie
document.cookie = "business; expires=" + expiry.toGMTString();

答案 1 :(得分:0)

(function(href, referrer) {
    var enterprise = "http://enterprise.mysite.com" 
    var personal = "http://personal.mysite.com" 

    var is_enterprise = new RegExp(enterprise).test(href)
    var is_personal = new RegExp(personal).test(href)

    var cache = readCookie('portal')
    if (cache) return location.href = cache

    var portal = is_enterprise || is_personal
    if (portal) document.cookie = "portal=" + (enterprise || personal) + "; expires=Fri, 31 Dec 9999 23:59:59 GMT";

    return null
})(location.href, document.referrer)


function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}