2014-09-22 35 views
0

我必须在某些逻辑上运行多个网站版本。比如说,对于2014年1月以后注册的所有用户,我必须展示较新版本的网站,对于较老的用户,我必须显示我的网站的旧版本。在一些php逻辑后面运行多个网站版本

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

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

使用cookie,代理或其他方法可能会发生同样的情况吗?

问题陈述:

我已经改组我的网站。我希望我的翻新网站只会显示给新的注册用户。对于现有的用户,旧版本将继续。两个网站版本的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

你能告诉我们关于这两个网站应该如何运作的一些事情吗?页面之间是否有重叠?他们在不同的目录?你如何检查注册日期?你使用cookies /会话吗?他们持续多久?等Cookie可能是一种可能性,但我们需要更多关于您网站的信息。 – 2014-09-22 09:46:59

+0

修改后的问题。页面之间没有重叠。这两个版本的Web根目录是不同的。 – 2014-09-25 11:28:13

回答

0

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

+0

模板只能帮助改变网站的外观。 Tanu并没有说它只是网站上的一个不同的皮肤,也许应用程序逻辑也不同。 – symcbean 2014-09-22 10:31:54

+0

然而,这可以用完全相同的方式完成。对不起,如果我的方式太具体了。概念依然存在。 – 2014-09-23 15:54:07