使用apache和mod_rewrite进行A/B测试

Dav*_*lds 5 apache mod-rewrite document-root multivariate-testing

尝试寻找这个,但我的谷歌福今天缺乏.

所以我有两个版本的网站,在

/var/www/vhosts/testa.mydomain.com/httpdocs and 
/var/www/vhosts/testb.mydomain.com/httpdocs
Run Code Online (Sandbox Code Playgroud)

每个文档都是一个完整的站点大修,我想进行A/B(多变量)测试,看看哪个站点表现更好.

谷歌搜索上周我看到了基于这个时间(甚至是奇数秒)的建议,但由于该网站是一个篮子网站(或者甚至可能是一个篮子的情况!),我不想在两个不同的处理场景之间徘徊-交易.

所以我认为如果客户端IP地址的最后一个八位位数是偶数,那么从testa服务是好的,而如果最后一个八位位数是奇数,则从testb服务.然后,我们至少可以获得一些指标,说明有多少人放弃了这个篮子,因为在不同版本的网站上太过笨重.

我很确定基于%{REMOTE_ADDR}的一堆RewriteCond行会做到这一点,但我在mod_rewrite上很无聊.

用户将访问test.mydomain.com,并且应该从一个或另一个DocumentRoot均匀地提供服务,而不是在他们的URL中看到testa或testb,但我们可以记录每个变体的性能.

任何善良的大师都能提供建议吗?

TIA大卫

更新:我可以通过虚拟主机将testa.mydomain和testb.mydomain设置为子域,如果有帮助的话.

And*_*ter 4

选项 1(重定向)将其中之一添加到两个域

放置在偶数站点 (testb.mydomain.com)

RewriteEngine On
RewriteCond %{REMOTE_ADDR} [13579]$
RewriteRule .* http://testa.mydomain.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

放置在奇数网站 (testa.mydomain.com)

RewriteEngine On
RewriteCond %{REMOTE_ADDR} [02468]$
RewriteRule .* http://testb.mydomain.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

选项 2(子文件夹不是子域)

RewriteEngine On
#direct to EVEN SITE
RewriteCond %{REMOTE_ADDR} [02468]$
RewriteRule (.*) /testa.mydomain.com/$1 [L]

#direct to ODD SITE
RewriteCond %{REMOTE_ADDR} [13579]$
RewriteRule (.*) /testb.mydomain.com/$1 [L]
Run Code Online (Sandbox Code Playgroud)