302 Перенаправление и зеркалирование на основе проверки Googlebot - PullRequest
0 голосов
/ 06 апреля 2020

Теперь у меня есть сценарий зеркального отображения в реальном времени,

<?php
session_save_path(dirname($_SERVER['DOCUMENT_ROOT']) . '/tmp');
session_start();
ob_start();

$base = "http://example.net"; //SET THIS TO THE URL OF THE WEBSITE THAT YOU WANT TO MIRROR

$ckfile       = '/tmp/cookie-' . session_id();
$cookiedomain = str_replace("http://www.", "", $base);
$cookiedomain = str_replace("https://www.", "", $cookiedomain);
$cookiedomain = str_replace("www.", "", $cookiedomain);
$url          = $base . $_SERVER['REQUEST_URI'];
if ($_SERVER['HTTPS'] == 'on') {
    $mydomain = 'https://' . $_SERVER['HTTP_HOST'];
} else {
    $mydomain = 'http://' . $_SERVER['HTTP_HOST'];
}
$curlSession = curl_init();
curl_setopt($curlSession, CURLOPT_URL, $url);
curl_setopt($curlSession, CURLOPT_HEADER, 1);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $postinfo = '';
    foreach ($_POST as $key => $value) {
        $postinfo .= $key . '=' . urlencode($value) . '&';
    }
    rtrim($postinfo, '&');
    curl_setopt($curlSession, CURLOPT_POST, 1);
    curl_setopt($curlSession, CURLOPT_POSTFIELDS, $postinfo);
}
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlSession, CURLOPT_TIMEOUT, 30);
curl_setopt($curlSession, CURLOPT_COOKIEJAR, $ckfile);
curl_setopt($curlSession, CURLOPT_COOKIEFILE, $ckfile);
foreach ($_COOKIE as $k => $v) {
    if (is_array($v)) {
        $v = serialize($v);
    }
    curl_setopt($curlSession, CURLOPT_COOKIE, "$k=$v; domain=.$cookiedomain ; path=/");
}
$response = curl_exec($curlSession);
if (curl_error($curlSession)) {
    print curl_error($curlSession);
} else {
    $response  = str_replace("HTTP/1.1 100 Continue\r\n\r\n", "", $response);
    $ar        = explode("\r\n\r\n", $response, 2);
    $header    = $ar[0];
    $body      = $ar[1];
    $header_ar = explode(chr(10), $header);
    foreach ($header_ar as $k => $v) {
        if (!preg_match("/^Transfer-Encoding/", $v)) {
            $v = str_replace($base, $mydomain, $v);
            header(trim($v));
        }
    }
    $body = str_replace($base, $mydomain, $body);

    //USE THE REPLACE FUNCTION BELOW TO REPLACE CONTENT/CODE OF THE ORIGIN SITE
    // eg. $body = str_replace('Welcome to SiteA','Welcome to SiteB', $body);

    $body = str_replace('REPLACE THIS', 'WITH THIS', $body);
    $body = str_replace('REPLACE THIS', 'WITH THIS', $body);
    $body = str_replace('REPLACE THIS', 'WITH THIS', $body);
    print $body;
}
curl_close($curlSession);

. И файл .htaccess для этого сценария

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /index.php [L]

На самом деле этот сценарий выполняет веб-сайт зеркального отображения в реальном времени. и изменение URL-адресов с моим тоже. Теперь я хочу проверить робота Googlebot из Htaccess, а затем 302 Перенаправить робота Googlebot на исходную версию с сохранением той же структуры URL. Как этого достичь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...