Принудительный статус хедер ответ 404 для страницы ошибки
Страница ошибка должна отдавать принудительный статус хедер ответ 404 для страницы ошибки! Но в зависимости от настройки сервера не всегда это возможно. Здесь пойдет речь именно о том как настроить с помощью кода PHP.
Если у Вас стоит движок то он может делать перехват кода ответа - всегда нужно пробовать...
<?php
// запрещаем кешировать
function nocache () {
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-chek=0,pre-chek=0");
header("Cache-Control: max-age=0");
header("Pragma: no-cache");
}
// Берём текущий код ответа
var_dump(http_response_code());
// Устанавливаем свой код ответа
var_dump(http_response_code(404));
// Берём новый код
var_dump(http_response_code());
exit;
?>
1. Вам нужно переадресовать все страницы с op=topic на страницу с ошибкой - 404.html
Например: /forum/?do=board&op=topic&id=344&utility=1&name=dovidka
=== Пишем:
RewriteCond %{QUERY_STRING} ^do=board
RewriteRule ^.*$ /404.html? [R=301,L]
=== чтобы в браузер отдавался ответ 404, пишем:
RewriteCond %{QUERY_STRING} ^do=board
RewriteRule ^.*$ /404.html? [R=404,L,NC]