nginx 根据get参数重定向(根据电视访问的mac地址传递的值,来重定向访问别的url地址,这样就可以进行单台的测试环境。。)

背景是这样的:

  公司要做所有客户端的迁移到别的云平台,但又担心会有问题,所以考虑分批次迁移过去,这样就需要迁移部分用户,因为客户端刷但都是统一但rom包,不能轻易发生改动,所以决定用重定向方式将部分客户迁移到新平台。域名大概是:http://xxxxxxxx.com/GetDomain.txt?mac=c80e77787878

因为之前写死了请求一个静态到txt文档,(当初没考虑到分批次切换)所以我需要从请求到这个文件来下手,首先给他分配到我们到程序里~

   location /GetDomain.txt {
                  if ($uri = /GetDomain.txt){
              rewrite ^  http://39.x.14.x/hotel/GetDomain.php;
}
             }  

#首先在nginx.conf文件中配置访问来自GetDomain.txt文件的都重定向到我到php文件         

 

接下来就好操作了,可以利用php来分配,建议使用第一种方式效率要高很多,第二种是备选。

第一种方式:

<?php
$fp = strpos(file_get_contents("/innfotech/www/mac.txt"),$_GET['mac']);
if($fp !== false){
  echo "a域名";
}else{
  echo"b域名";
?>

 

第二种方式:

<?php
$mac = $_GET['mac'] $command = "grep -w $mac /innfotech/www/mac.txt"; $search_mac = exec($command); if($fp}{ echo "a域名"; }else{ echo "b域名"; } ?>

  

 

原文地址:https://www.cnblogs.com/liuquan/p/9072364.html