Привет всем, есть редирект, через js, который пользователей с моб. отправляет на поддомен, а с пк отправляет на основной домен:
Как его реализовать на php (302 редирект по user-agent)? В движке есть определение по user-agent, для рекламы, при помощи
https://github.com/serbanghita/Mobile-Detect, который подключен в process_page.php вот так
if (@count($ad_info['devices']) > 0 && @count($ad_info['devices']) < 3)
{
if (!class_exists('Mobile_Detect'))
{
include_once("$config[project_path]/admin/include/mobiledetect/Mobile_Detect.php");
}
if (class_exists('Mobile_Detect'))
{
$mobiledetect = new Mobile_Detect();
$ad_device_show = false;
foreach ($ad_info['devices'] as $ad_device)
{
if ($ad_device_show)
{
break;
}
switch ($ad_device)
{
case 'pc':
$ad_device_show = !$mobiledetect->isMobile();
break;
case 'tablet':
$ad_device_show = $mobiledetect->isTablet();
break;
case 'phone':
$ad_device_show = $mobiledetect->isMobile() && !$mobiledetect->isTablet();
break;
}
}
if (!$ad_device_show)
{
continue;
}
}
}
Пытались сделать, подключив вот этот код в pre_process_page.php, но получаем циклический редирект. Кто поможет? Спасибо!
<?php
include_once("$config[project_path]/admin/include/mobiledetect/Mobile_Detect.php");
session_start();
$detect = new Mobile_Detect;
$det = array();
$det['mobile'] = $detect->isMobile();
$det['link'] = isMobileLink();
function isMobileLink() {
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
if(stristr('#^m.#', '', $url) == 1) {
return 1;
} else return 0;
}
function isBot() {
if (preg_match('/googlebot|-google|yandex/i', $_SERVER['HTTP_USER_AGENT'])) {
return 1;
} else return 0;
}
function replaceUrl() {
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
if ($detect->isMobile() == 1 && $det['link'] == 0){
$url = 'm.'.$url;
return $url;
} else if ($det['mobile'] == 0 && $det['link'] == 1){
$url = preg_replace('#^m.#', '', $url);
return $url;
} else return false;
}
function rredirect($url, $permanent = false) {
header("HTTP/1.1 301 Moved Permanently");
header('Location: '.$url, true, 301);
die("Redirect");
}
$way = array(0,0,0);
$way[1] = isBot();
$way[2] = $det['mobile'];
$way[3] = isMobileLink();
if ($way[1] == 1 && $way[2] == 1 && $way[3] == 1) { $red=false; $adw=false;} //Бот телефон на моб версии';}
if ($way[1] == 1 && $way[2] == 1 && $way[3] == 0) { $red=true; $adw=false;} //Бот телефон на пк версии';}
if ($way[1] == 1 && $way[2] == 0 && $way[3] == 1) { $red=true; $adw=false;} //Бот комп на моб версии';}
if ($way[1] == 1 && $way[2] == 0 && $way[3] == 0) { $red=false; $adw=false;} //Бот комп на пк версии';}
if ($way[1] == 0 && $way[2] == 1 && $way[3] == 0) { $red=true; $adw=true;} //Человек телефон на пк версии';}
if ($way[1] == 0 && $way[2] == 1 && $way[3] == 1) { $red=false; $adw=true;} //Человек телефон на моб версии';}
if ($way[1] == 0 && $way[2] == 0 && $way[3] == 1) { $red=true; $adw=true;} //Человек комп на моб версии';}
if ($way[1] == 0 && $way[2] == 0 && $way[3] == 0) { $red=false; $adw=true;} //Человек комп на пк версии';}
if (isset($_COOKIE['cenzura']) && $_COOKIE['cenzura']=='offline') {
$displaypop = 'none';
} else if ($adw == 'true' || $_COOKIE['cenzura']!='offline') {
$displaypop = 'block';
}
if ($red == 'true') {
rredirect(replaceUrl());
}