我在台式机网站 www.domain.com 上具有以下代码:
<?php
$userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : '';
if(!preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $userAgent))
{
if(strpos($_SERVER["HTTP_HOST"], "m.domain.com") !== false){
echo "<script>window.location='";
echo str_replace("//m." , "//www.", "https://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]);
echo "';</script>";
}
}
?>
并且此代码在移动网站 m.domain.com 上:
<?php
$userAgent = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : '';
if(preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]))
{
if(strpos($_SERVER["HTTP_HOST"], "www.domain.com") !== false){
echo "<script>window.location='";
echo str_replace("//www." , "//m.", "https://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]);
echo "';</script>";
}
}
?>
无法检测到此代码中的任何问题,但是站点正在无限地从一个重定向到另一个。在Wordpress网站上使用,如果Wordpress限制使用此php代码,请进行指导。
答案 0 :(得分:0)
您可以尝试以下解决方案
<?php
$iphone = strpos($_SERVER['HTTP_USER_AGENT'],'iPhone');
$android = strpos($_SERVER['HTTP_USER_AGENT'],'Android');
$berry = strpos($_SERVER['HTTP_USER_AGENT'],'BlackBerry');
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],'iPod');
if ($iphone || $android || $palmpre || $ipod || $berry == true)
{
echo "<script>// <![CDATA[
window.location='http://m.site.com'
// ]]></scrip>";
}
?>
参考网址:https://www.woorank.com/en/blog/how-to-redirect-mobile-users-on-your-website
答案 1 :(得分:0)
有一个可用的PHP库,它为您提供了很多选择,例如移动设备,平板电脑,iOS,Android等:http://mobiledetect.net/
由于您使用的是PHP,因此可以通过设置标头而不是使用JavaScript来重定向,这也更快:How do I make a redirect in PHP?
答案 2 :(得分:0)
我已经找到以下解决方案来解决您的问题,希望对您有所帮助。
add_action('wp_head', 'redirect_mobile');
function redirect_mobile(){
if ( wp_is_mobile() ) {
wp_redirect( 'http://url' );
exit;
}
}
您可以在主题functions.php文件中添加以上代码行。 我会找到给定的link to helps you more on this topic
答案 3 :(得分:0)
我知道这不是您问题的直接答案,但是请考虑使用现有的库,例如Mobile-Detect。非常简单,您将支持更多移动设备的重定向。
$detect = new Mobile_Detect;
$isMobile = $detect->isMobile();
if ($isMobile) {
// do the redirect here
}