У меня есть сайт, который ранее размещался только через Apache, и мы используем скрипт для создания динамических страниц.Запрос попадает в подпапку со скриптом, который ищет 404 ошибки, и если URI запроса находится в списке, то динамическая страница обслуживается.Это очень урезанная версия скрипта, но она выглядит примерно так:
if (preg_match("/\/shop-search\/(.*)-shoes$/", $_SERVER['REQUEST_URI'],
$matches)) {
header("HTTP/1.1 200 OK");
$colorName = trim(strip_tags($matches[1]));
$pagenum = 1;
$mainURL = "/shop-search/" . $colourName . "-shoes/";
$color = array(
"Blue" => "Blue",
"Red" => "Red",
);
if (isset($color[$colorName])) {
$keywords = $color[$colorName];
$pageType = "colour";
require_once "by-color.php";
exit;
}
}
В Apache он перехватывает 404, проверяет и затем отображает страницу с сообщением 200, браузерне обслуживается 404. С обратным прокси-сервером nginx страница по-прежнему отображается, но 404 передается в браузер, так что это означает, что страницы содержат ошибки для робота Googlebot и страницы выпали из индекса.Есть ли какой-либо способ остановить обработку этой папки nginx вообще или любой другой способ остановить перемещение 404 обратно в nginx до того, как будет отправлен код 200?