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()