阻止手机访问子域名m

时间:2014-11-14 15:26:57

标签: javascript php wordpress subdomain

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

移动访问者应该访问原始域名(例如www.domain.com),直到子域名的开发完成为止。我个人不是很熟练使用Wordpress,但我正在使用像php,mysql,js等网络语言。

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

对此可以有一个更简单的解决方案吗?

修改 由于需要在手机上测试这个网站,因此不应该阻止访问移动电话。

1 个答案:

答案 0 :(得分:7)

是的,有一个解决方案,但正如Digital Chris所说,不要在生产环境下开发。在localhost或其他域上执行此操作。

首次调用页面时设置查询参数。

让它为?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();
}

当然,您可以设置更安全的参数名称和值。这不是最安全的方式。

另一种方法是,如果您只通过检查$_SERVER["REMOTE_ADDR"];而只允许您的IP,以及它是否属于您的IP,则将它们重定向回非子网域。