ICP备案不关站的一点思路,代码用PHP编写,适用于单入口的项目(如WordPress、ThinkPHP等),添加到index.php最顶部,并且做一个供备案审核的静态页面ICP.html放在网站根目录。
效果:
1.https访问全部放行(http可用的情况下,如果你的http是自动跳https,那取消此项,管局默认检查http,http可以访问的情况下不会检查https)
2.User-Agent检测,管局不可能用微信或者偏门的浏览器检查网站,所以可以放行部分UA,如果你有SEO需求,放行搜索引擎爬虫。也可以对Android和iOS放行,不过有些云服务商不推荐。
3.带参数放行。管局一般只检查主页,主页显示静态页面,没有可点击的链接。如果URL带有效参数,全部放行。
function is_https() {
if ( !empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') {//IIS
return true;
} elseif ( isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
return true;
} elseif ( !empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off') {
return true;
}elseif ($_SERVER['SERVER_PORT'] == 443) {//端口号判断
return true;
}elseif (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 1){//Apache
return true;
}
return false;
}
if (!is_https()) {
if (isset($_SERVER['HTTP_USER_AGENT'])) {
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
if ((!preg_match("/.+xiaoshijie/", $userAgent)) && (!preg_match("/.+micromessenger.+/", $userAgent))) {
if (is_array($_GET)) {
if (!(isset($_GET["p"]) || isset($_GET["page_id"]) || isset($_GET["beian"]) || isset($_GET["action"]) || isset($_GET["rest_route"]) || isset($_GET["author"]) || isset($_GET["cat"]) || isset($_GET["s"]))) {
$string = file_get_contents('ICP.html');
echo $string;
exit();
}
}
}
}
}