Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 阻止手机访问子域m_Javascript_Php_Wordpress_Subdomain - Fatal编程技术网

Javascript 阻止手机访问子域m

Javascript 阻止手机访问子域m,javascript,php,wordpress,subdomain,Javascript,Php,Wordpress,Subdomain,一位客户要求我创建一个子域,其中包含另一个为移动用户优化的网站。我在这个子域(例如m.domain.com)上安装了最新的Wordpress。每个人都可以访问此子域。此子域上只有虚拟文本和模板可用 在子域开发完成之前,移动访问者应访问原始域(如www.domain.com)。就个人而言,我不太擅长使用Wordpress,但我擅长使用php、mysql、js等网络语言 现在出现的问题是,一些移动浏览器正在自动检查一个域中的m子域。然后它们自动重定向到该子域。我事先并不知道这一点,我正在寻找一个快速

一位客户要求我创建一个子域,其中包含另一个为移动用户优化的网站。我在这个子域(例如m.domain.com)上安装了最新的Wordpress。每个人都可以访问此子域。此子域上只有虚拟文本和模板可用

在子域开发完成之前,移动访问者应访问原始域(如www.domain.com)。就个人而言,我不太擅长使用Wordpress,但我擅长使用php、mysql、js等网络语言

现在出现的问题是,一些移动浏览器正在自动检查一个域中的m子域。然后它们自动重定向到该子域。我事先并不知道这一点,我正在寻找一个快速的解决办法。我的主机似乎没有提供临时更改子域名称的选项。这意味着我必须删除子域并创建一个新的子域,然后再次安装wordpress,开发网站,导出内容,删除新子域,再次创建m子域,再次安装wordpress,并导入开发的网站

有没有更简单的解决办法

编辑
由于需要在手机上测试此网站,因此不应阻止对手机的访问。

是的,有一个解决方案,但正如Digital Chris所述,不应在生产环境下开发。改为在本地主机或其他域上执行此操作

在第一次调用页面时设置查询参数

让它成为
?dev=123

因此,在索引php中,检查此项,如果已设置,则添加一个会话变量来存储该项。然后您检查,这个会话变量是否存在。如果是,则什么也不做,只需开发页面。如果不是,则将所有人重定向到非子域域

session_start();
if (!empty($_GET["dev"]) && $_GET["dev"] == 123) {
    $_SESSION["dev"] = 123;
}

if (empty($_SESSION["dev"]) || $_SESSION["dev"] != 123) {
    header('Location: http://www.domain.com');
    die();
}
当然,您可以设置更安全的参数名称和值。这不是最安全的方法


另一种方法是,如果您通过选中
$\u SERVER[“REMOTE\u ADDR”]只允许您的IP如果它不是您的,则将它们重定向回非子域域。

我建议不要在生产环境中进行开发工作。删除了我的注释,因此@DigitalChris位于顶部。到目前为止,最好的建议是您可以尝试使用mobiledetect.net上提供的库来检测和处理/重定向移动浏览器请求?@ᵈ谢谢,我删除了我的答案。你不需要
$\u会话
。只需检查查询参数是否存在,如果不存在,则重定向。@ʰᵈˑ我已经在会话中使用了这个参数,因为如果没有,那么我需要重写每个url,使其包含该参数。你认为,什么是较少的工作?在输出之前解析整个页面,并添加参数,或者只是使用会话检查?抱歉,我有点困惑。你为什么需要这个疗程ᵈ因为如果你只是使用
$\u GET[“dev”]
,那么当你点击像
http://example.com/first-blog-entry/
不会有那个参数,我假设Wordpress不会使用绝对url,是吗?因此,如果您在主机
m.domain.com
,所有链接都将指向
m.domain.com
,而不是
domain.com
session_start();
if (!empty($_GET["dev"]) && $_GET["dev"] == 123) {
    $_SESSION["dev"] = 123;
}

if (empty($_SESSION["dev"]) || $_SESSION["dev"] != 123) {
    header('Location: http://www.domain.com');
    die();
}