【发布时间】:2011-08-10 11:43:19
【问题描述】:
我想做的是处理同一个网络应用程序的多个版本,有点像谷歌在他们的一些产品上做的,你会得到“试用新版本”链接。
我们的目标是同时拥有一个“稳定”和“测试”版本的 web 应用程序,让用户在不强迫他们(和他们的错误)的情况下试用新功能。
现在,一种非常简单的方法是将每个版本放在自己的子文件夹中,例如 www.mywebapp.com/v1 和 www.mywebapp.com/v2。
但是,我希望这对用户是透明的,并且 webapp URL 保持不变(例如:www.mywebapp.com/)。
必须加载哪个版本在用户登录后由服务器端确定(例如:给定用户的活动版本存储在数据库中),稍后可能会在用户单击“尝试新版本”时更改/“回到旧版本”链接。
在服务器端,我必须使用 MySQL、PHP 和 Apache。
我已经设法将每个版本放入其自己的子文件夹中,然后将版本信息存储在 cookie 中(由服务器在每次登录或页面刷新时更新)并使用 RewriteRule 来“代理”来自正确子文件夹的基本/无版本 URL。如果未设置 cookie,则备用 RewriteRule 会选择默认文件夹。
这个kludge可以工作,但感觉非常脆弱,它给Apache守护进程带来了额外的负担,所以我在这里问是否有人知道这样做的更好方法。
谢谢!
【问题讨论】:
-
这件事的哪一部分对你来说是脆弱的?将信息存储在 cookie 或代理中?
标签: php apache ria multiple-versions