我要做的是处理同一个 Web 应用程序的多个版本,有点像 Google 对他们的一些产品所做的那样,您可以在其中获得“尝试新版本”链接。
目标是同时拥有 webapp 的“稳定”和“beta”版本,并让用户在不强迫他们(和他们的错误)的情况下尝试新功能。
现在,一个非常简单的方法是将每个版本放在自己的子文件夹中,例如 www.mywebapp.com/v1 和 www.mywebapp.com/v2。
但是,我希望这对用户是透明的,并且 webapp URL 保持不变(例如:www.mywebapp.com/)。
必须加载哪个版本在用户登录后由服务器端确定(例如:给定用户的活动版本存储在数据库中),并且可能稍后在用户单击“尝试新版本”/“开始”时更改返回旧版本”链接。
在服务器端,我必须使用 MySQL、PHP 和 Apache。
我已经设法将每个版本放入其自己的子文件夹中,然后将版本信息存储在 cookie 中(由服务器在每次登录或页面刷新时更新)并使用 RewriteRule(s) 来“代理”来自基本/无版本的请求正确子文件夹的 URL。如果未设置 cookie,则备用 RewriteRule 会选择默认文件夹。
这个 kludge 有效,但感觉非常脆弱,它给 Apache 守护进程带来了额外的负担,所以我在这里问是否有人知道这样做的更好方法。
谢谢!