我必须在某些逻辑上运行多个网站版本。比如,对于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。这样我就可以向新用户展示改版后的网站了。第一次使用者的可能性如何?
答案 0 :(得分:0)
如果您的网站首先使用正确的模板引擎,这不会有太大问题.php是后端,因此只需在内容呈现之前运行注册日期检查,然后相应地显示内容。这几乎是任何网站在某种程度上所做的事情。