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

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

Можно ли как-то 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
212
#1

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

<html>

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

Вот и все ))))

Я вебмастер высшего уровня. Разработка веб-приложений и скриптов. Пишите в телегу.
LEOnidUKG
На сайте с 25.11.2006
Offline
1704
#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;

}

✅ Трастовых площадок под размещение статей и ссылок. Опыт 15 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Новый аналог AllSubbmitter (заполнение форм) https://getmanylinks.ru/getmanysubmits.html (Бесплатное демо)
Mik Foxi
На сайте с 02.03.2011
Offline
1064
#3

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

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

?

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

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

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