如何在没有m.version或媒体查询的情况下在相同的URL上提供Mobile / Desktop?

时间:2015-01-27 02:26:26

标签: php html apache .htaccess server

我希望基于移动设备是否完全提供完全不同内容的网址website.com

这意味着没有 CSS媒体查询没有 特定网址 m.website.com。< / p>

我甚至不知道这是否可行。但我想我已经在this website上看到了这一点(不确定)。

换句话说,想象一下&#34;移动&#34;文件夹和桌面&#34;服务器上的文件夹。 是否可以提供&#34; mobile&#34;的内容?如果是移动设备,则将文件夹发送到根目录website.com/,如果没有,则发送到桌面服务器。

1 个答案:

答案 0 :(得分:2)

您可以使用PHP和HTTP用户代理执行此操作:

function find_mobile_browser()
{
  if(preg_match('/(alcatel|android|blackberry|benq|cell|elaine|htc|iemobile|iphone|ipad|ipaq|ipod|j2me|java|midp|mini|mobi|motorola|nokia|palm|panasonic|philips|phone|sagem|sharp|smartphone|sony|symbian|t-mobile|up\.browser|up\.link|vodafone|wap|wireless|xda|zte)/i', $_SERVER['HTTP_USER_AGENT']))
  {
    return true;
  }
  return false;
}

在代码的开头调用此函数,如果您的用户使用移动用户代理,则返回True。 Ant然后你可以包括实际的网站。 if - Block可能如下所示:(我不确定当下包含/请求的URI)

if($_SERVER['REQUESTED_URI'] == ''){
  $request = index.html;
}
else{
  $request = $_SERVER['REQUESTED_URI'];
}
if(find_mobile_browsers()){
 include('mobile/'.$request);
}
else{
 include('desktop/'.$request;
}

请注意,用户代理可以更改或者不会发送给您,但在这种情况下,它只会返回桌面版本。

对于.htaccess,请参阅此网站:http://jrgns.net/redirect_request_to_index/