function insert_custom_canonical_tag_from_json() { error_log('Custom Canonical Plugin loaded'); error_log('REQUEST_URI: ' . $_SERVER['REQUEST_URI']); error_log('HTTP_HOST: ' . $_SERVER['HTTP_HOST']); $json_path = WP_CONTENT_DIR . '/uploads/canonicals.json'; if (!file_exists($json_path)) { echo ""; return; } $allowed_urls = json_decode(file_get_contents($json_path), true); if (!is_array($allowed_urls)) { echo ""; return; } // Нормализуем JSON $allowed_urls = array_map(function ($u) { return rtrim($u, '/') . '/'; }, $allowed_urls); // Определим хост $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http'; $host = $_SERVER['HTTP_HOST']; $uri = explode('?', $_SERVER['REQUEST_URI'])[0]; $uri = rtrim($uri, '/') . '/'; // Если прокси (blog через emailmatrix.ru) — заменим хост if ($host === 'emailmatrix.ru' && strpos($uri, '/blog/') === 0) { $host = 'blog.emailmatrix.ru'; } // Финальный URL, как видит сервер $url = "$protocol://$host$uri"; // А вот сравнивать будем с эталонным хостом — emailmatrix.ru $normalized_url = str_replace('blog.emailmatrix.ru', 'emailmatrix.ru', $url); if (in_array($normalized_url, $allowed_urls)) { echo '' . PHP_EOL; error_log("Canonical plugin: matched → $normalized_url"); } else { error_log("Canonical plugin: not matched → $normalized_url"); echo ""; } } Архивы Геймификация – Блог EMAILMATRIX