nginx - как 404 код заменить на 301 через PHP?

Сенатор
На сайте с 03.03.2014
Offline
46
322

Можно ли как-то 404 код заменить на PHP?

Вот в конфиге nginx:

error_page 404 /404.php

В 404.php:

<?php 

if (rand(1,5)!=5)
{
header("Location: https://site.ru", true, 301);
}
else
{
header("HTTP/1.1 404 Not Found");
}
?>

Но код всёравно 404 Not Found

Можно ли так код ответа сервера менять? Есть ли варианты?

skapunker
На сайте с 15.01.2014
Offline
224
#1

ерундой какой то занимаешься. Сделай просто страницу index.html и запиши туда

<html>

<head>
<title>Ответ 301</title>
</head>
<body>
<h1>301</h1>
</body>

Вот и все ))))

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#2

А что, это за условие:

<?php
if (rand(1,5)!=5)
{

?

Если хотите обработку скриптом, то вам правило надо менять:

http://nginx.org/ru/docs/http/ngx_http_core_module.html#error_page

Если при внутреннем перенаправлении не нужно менять URI и метод, то можно передать обработку ошибки в именованный location:

location / {

error_page 404 = @fallback;

}

location @fallback {

proxy_pass http://backend;

}

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Mik Foxi
На сайте с 02.03.2011
Offline
1176
#3

в 404.php у вас будет тот код, который вы выставите в скрипте.

Антибот, антиспам, веб файрвол, защита от накрутки поведенческих: https://antibot.cloud/ Форум на замену серчу: https://foxi.biz/
Сенатор
На сайте с 03.03.2014
Offline
46
#4
LEOnidUKG:
А что, это за условие:

?

Это для примера...

Спасибо, помогли.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий