Это просто неправильно!
Прежде всего вы неправильно используете header ()
правильный
header('Location: URL');
И вы используете неправильную переменную:
$_SERVER['DOCUMENT_ROOT']
возвращает абсолютный локальный путь на машине.
$ _ SERVER ['SERVER_NAME'] подошло бы лучше, но не забывайте добавлять http / https перед ним
НО:
Вам не нужно добавлять текущее имя сервера - просто добавьте путь
header('Location: /public/index.php');
Это всегда будет перенаправлять на HTTP (S): //YOURSERVER/public/index.php
И вы также можете использовать относительные пути, просто удалите косую черту