我有一个header.php文件,该文件包含在我的所有桌面网站中,包括index.php,about.php等。
我使用header.php中的以下代码将移动用户重定向到我的移动网站http://m.hewdenportal.co.uk:
header.php(桌面网站标题文件):
<?php
if (!isset($_COOKIE['nomobile'])) { ?>
<script>
function urlParam(name){
var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
if(results)
return results[1] || 0;
else
return '';
}
if(urlParam('view') == 'full'){
}
if(urlParam('view') == ''){
// <![CDATA[
var mobile = (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));
if (mobile) {
document.location = "http://m.hewdenportal.co.uk";
}
// ]]>
}
</script>
<?php } ?>
这里的想法是,如果没有设置cookie,那么浏览器应该读取我的jQuery,如果他们使用移动设备,用户应该被重定向到我的移动网站。
接下来,在移动网站上,我向用户提供导航到完整网站的选项,如下所示:
移动网站:
<a href="full_site.php" data-ajax="false">Full Site</a>
full_site.php:
<?php
setcookie("nomobile", time()+3600); /* expire in 1 hour */
header('Location: http://www.hewdenportal.co.uk');
?>
在我的full_site.php文件中,然后尝试启动一个cookie,该cookie将持续到用户关闭我的网站上的会话。然后用户被重定向到完整站点。
然后检查cookie是否存在于我的header.php文件中,这样用户在网站打开的整个持续时间内都不会被重定向回移动站点。在他们离开网站并稍后返回该网站之前,他们会被带回移动网站。
我遇到的问题是php代码似乎没有检查cookie,并且它不断地将用户重定向到移动网站。请有人告诉我最好的方法吗?