http_response_code

http_response_code($response_code)

Z parametrem ustawia kod statusu odpowiedzi i zwraca poprzedni kod. Bez parametru zwraca bieżący kod. Na serwerze WWW domyślnie jest to 200.

Parametry

  • $response_code – opcjonalny, nowy kod statusu (200, 301, 404, 410, 500, 503…).

Przykłady

echo http_response_code(); // 200
// ustawienie zwraca poprzedni kod
echo http_response_code(404); // 200
echo http_response_code(); // 404
// strona nie znaleziona: kod i własna treść
// http_response_code(404);
// include __DIR__ . "/404.php";
// exit;
// treść usunięta na stałe – wyszukiwarka usunie ją szybciej
http_response_code(410);
echo http_response_code(); // 410
// konserwacja strony: chwilowo niedostępna i kiedy spróbować ponownie
// http_response_code(503);
// header("Retry-After: 3600");
http_response_code(200);

Na co uważać

  • Strona z tekstem „Nie znaleziono”, ale z kodem 200, jest dla wyszukiwarek poprawną stroną (soft 404). Strony błędów muszą wysyłać prawdziwy kod.
  • Kod jest wysyłany w nagłówkach, więc także http_response_code() musi być przed pierwszym wyjściem.
  • Przy konserwacji wysyłaj 503, nie 404 ani 200. Wyszukiwarka nie usunie wtedy stron.
  • Przekierowanie ustawiasz bezpośrednio w header("Location: …", true, 301). Sam kod 301 bez nagłówka Location nigdzie nie przekierowuje.

Powiązane funkcje:
header()
headers_sent()