在一些php逻辑后面运行多个网站版本

时间:2014-09-22 09:39:15

标签: php cookies nginx proxy

我必须在某些逻辑上运行多个网站版本。比如,对于2014年1月之后注册的所有用户,我必须显示更新版本的网站,对于年龄较大的用户,我必须显示我的网站的旧版本。

Web服务器:静态内容的nginx和动态内容的apache 平台:php,mysql和linux

对于访问我网站的用户,我必须检查注册日期,并相应地将用户重定向到相应的网站版本。但我想阻止这种额外的重定向。

使用cookies,代理还是可以吗?

问题陈述:

我修改了我的网站。我希望我的改版网站只会向新注册用户展示。对于现有用户,旧版本将继续使用。两个网站版本的Web根目录都不同。

nginx配置:

 server {
    listen       80;
    server_name example.com;
    location /
    {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-FORWARDED_PROTO https;
        set $cookie_redirect 0;
        if ($http_cookie ~ 'ver=1' ) {
            set $cookie_redirect 1;
        }
        if ($cookie_redirect ~ 1) {
            proxy_pass   http://127.0.0.1:6060;
        }
        if ($cookie_redirect ~ 0 ) {
            proxy_pass   http://127.0.0.1:7070;
        }
    }

apache配置:

    <VirtualHost *:6060>
        DocumentRoot /var/www/dir1
        ServerName example.com
    </VirtualHost>
    <VirtualHost *:7070>
        DocumentRoot /var/www/dir2
        ServerName example.com
    </VirtualHost>

但如果设置了cookie,它将起作用。对于第一次来的用户,我必须根据注册日期设置cookie。这样我就可以向新用户展示改版后的网站了。第一次使用者的可能性如何?

1 个答案:

答案 0 :(得分:0)

如果您的网站首先使用正确的模板引擎,这不会有太大问题.php是后端,因此只需在内容呈现之前运行注册日期检查,然后相应地显示内容。这几乎是任何网站在某种程度上所做的事情。