Отлов и редирект определенного refer

Discussion in 'PHP' started by MastaBass1, 1 Apr 2011.

  1. MastaBass1

    MastaBass1 Member

    Joined:
    25 Dec 2009
    Messages:
    61
    Likes Received:
    13
    Reputations:
    2
    Помогите написать скрипт, или команду для htaccess со следующим функционалом:
    На неком сайте ставится фрейм со ссылкой на какой-то домен, на этом домене нужно отследить refer, и если в нем есть любое слово из файла maska.txt, то человеку ставится кука например "admin" и идет редирект на ту-же страницу 404, в противном случае редирект на какой-нибудь другой домен.
    Соответственно когда приходит человек со стоящей кукой "admin", редиректить его на страницу допустим 404, заранее огромное спасибо.
    Может у кого-нибудь есть что-то подобное?

    Нашел следующий исходник, но он выдает ошибки на 13 и 28 строке:
    PHP:
     <?php
     $cnf
    =array(
     
    "site_uri"=>"http://xxxxxx.xxx",
     
    "default_uri"=>"404.php",
     
    "priority"=>"begin"// end,begin,random
     
    "cookie_request"=>array("Name","Value",time()+3600*24*28*12*101,'/'),
     );
     
     
    $files=array(
     
    "admin"=>"404.php",
     );
     
     
    call_user_func_array("setcookie",$cnf['cookie_request']);
     if(!empty(
    $_SERVER['HTTP_REFERER'])){
         
    preg_match_all("#\w+#i",$_SERVER['HTTP_REFERER'],$match);
         if(!empty(
    $match[0])){
           
    $index=array_uintersect(array_keys($files),array_unique($match[0]),"strcasecmp");
           if(!empty(
    $index)){
               if(
    count($index)>1){
                   switch(
    $cnf['priority']){
                       case 
    "random":
                           
    $index=$index[array_rand($index)];
                           break;
                       case 
    "begin":
                           
    $index=array_shift($index);
                           break;
                       case 
    "end":
                           
    $index=array_pop($index);
                           break;
                   }
               }else 
    $index=current($index);
               
    header("location: ".$cnf['site_uri']."/".$files[$index]);
               exit;
           }
         }
     }
     
     
    header("location: ".$cnf['site_uri']."/".$cnf['default_uri']);
     
    ?>
     
    #1 MastaBass1, 1 Apr 2011
    Last edited: 1 Apr 2011