.htaccess重定向到随机网址

时间:2017-11-25 08:41:15

标签: .htaccess redirect mod-rewrite

我的服务器上有几个页面,我有流量,我需要将它们重定向到其他网站。这很容易。问题是我需要混淆并随机将人们发送到新网站。

我发现time_sec可以这样做,但是无论我尝试什么,我目前的知识还不足以让它发挥作用。

这是我现在正在使用的代码:

  

RewriteCond%{TIME_SEC} ^(0 | 4 | 8 | 12 | 16 | 22 | 26 | 30 | 34 | 38 | 42 | 46 | 50 | 54 | 58)
  RedirectMatch 301 /my-page-1.php https://newsite.com/page1/discount

     

RewriteCond%{TIME_SEC} ^(1 | 5 | 9 | 13 | 17 | 23 | 27 | 31 | 35 | 39 | 43 | 47 | 51 | 55 | 59)
  RedirectMatch 301 /my-page-1.php https://newsite.com/page1/offer

     

RewriteCond%{TIME_SEC} ^(2 | 6 | 10 | 14 | 18 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60)
  RedirectMatch 301 /my-page-1.php https://newsite.com/page1/email

     

RewriteCond%{TIME_SEC} ^(3 | 7 | 11 | 15 | 19 | 25 | 29 | 33 | 37 | 41 | 45 | 49 | 53 | 57)
  RedirectMatch 301 /my-page-1.php https://newsite.com/page1/promo

... //另一个页面 ...

  

RewriteCond%{TIME_SEC} ^(0 | 4 | 8 | 12 | 16 | 22 | 26 | 30 | 34 | 38 | 42 | 46 | 50 | 54 | 58)
  RedirectMatch 301 /my-page-2.php https://newsite.com/page2/discount

     

RewriteCond%{TIME_SEC} ^(1 | 5 | 9 | 13 | 17 | 23 | 27 | 31 | 35 | 39 | 43 | 47 | 51 | 55 | 59)
  RedirectMatch 301 /my-page-2.php https://newsite.com/page2/offer

     

RewriteCond%{TIME_SEC} ^(2 | 6 | 10 | 14 | 18 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60)
  RedirectMatch 301 /my-page-2.php https://newsite.com/page2/email

     

RewriteCond%{TIME_SEC} ^(3 | 7 | 11 | 15 | 19 | 25 | 29 | 33 | 37 | 41 | 45 | 49 | 53 | 57)
  RedirectMatch 301 /my-page-2.php https://newsite.com/page2/promo

所以我在我的服务器上有几个“my-page-x.php”,我得到了流量,我需要将流量随机地转移到特定的新站点。

这段代码不经意地不起作用。我尝试了一百万次改变,但没有。

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

实现随机性的好主意。

我做了两次调整

1)添加" $"到TIME_SEC条件的行结尾,以便根据值(而不仅仅是开头)检查完整的秒字符串

2)用必要的重写对应RedirectMatch

切换RewriteRule

这应该可以解决您的问题:

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} ^my-page-1\.php$
RewriteCond %{TIME_SEC} ^(0|4|8|12|16|22|26|30|34|38|42|46|50|54|58)$
RewriteRule ^.*$ https://yoururl1.com [L, R=301]

RewriteCond %{REQUEST_FILENAME} ^my-page-1\.php$
RewriteCond %{TIME_SEC} ^(1|5|9|13|17|23|27|31|35|39|43|47|51|55|59)$
RewriteRule ^.*$ https://yoururl2.com [L, R=301]

RewriteCond %{REQUEST_FILENAME} ^my-page-1\.php$
RewriteCond %{TIME_SEC} ^(2|6|10|14|18|24|28|32|36|40|44|48|52|56|60)$
RewriteRule ^.*$ https://yoururl3.com [L, R=301]

RewriteCond %{REQUEST_FILENAME} ^my-page-1\.php$
RewriteCond %{TIME_SEC} ^(3|7|11|15|19|25|29|33|37|41|45|49|53|57)$
RewriteRule ^.*$ https://yoururl4.com [L, R=301]