URL не совпадает с PHP $ _SERVER ['DOCUMENT_ROOT'] - PullRequest
1 голос
/ 21 июня 2019

Я использую Oracle VM VirtualBox + Vagrant + CentOS 7.0 + PHP.

Когда я захожу на страницу http://192.168.33.10/public/index.php:

header('Location: '.$_SERVER['DOCUMENT_ROOT'] .'/public/index.php');

Это должно перенаправить на public/public/index.php, но я не знаю, почему оно перенаправляет на /vagrant/public/public/index.php.

Как я могу это исправить?

1 Ответ

1 голос
/ 21 июня 2019

Это просто неправильно! Прежде всего вы неправильно используете header ()

правильный

header('Location: URL');

И вы используете неправильную переменную:

$_SERVER['DOCUMENT_ROOT']

возвращает абсолютный локальный путь на машине.

$ _ SERVER ['SERVER_NAME'] подошло бы лучше, но не забывайте добавлять http / https перед ним

НО:

Вам не нужно добавлять текущее имя сервера - просто добавьте путь

header('Location: /public/index.php');

Это всегда будет перенаправлять на HTTP (S): //YOURSERVER/public/index.php

И вы также можете использовать относительные пути, просто удалите косую черту

...