У меня есть файл (config.php), который содержит заголовок типа перенаправления (местоположение:..)
Код config.php:
if ($config_is_ok !== true) {
exit(header('location: install'));
}
Структура папок
-localhost
--config.php
--index.php
--install
---index.php
--admin
---index.php
В index.php и в admin -> index.php есть такой код:
require_once('../config.php');
... irelevante code ...
Как я могу отредактировать config.php, чтобы перенаправить меня правильно? (Я пробовал несколько таких методов, но это не сработало..)
$website_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]/install";
if ($config_is_ok !== true) {
exit(header('location: ' . $website_link));
}
Я хочу использовать этот config.php в нескольких файлах с помощью метода «require», но я не могу сделать этот заголовок функциональным.
С вашей текущей файловой структурой вы перенаправляете на несуществующий файл и, вероятно, неправильно используете функцию выхода. Я бы посоветовал
if ($config_is_ok !== true) {
header('location: /install/index.php');
die;
}
Несколько других замечаний для рассмотрения:
Ваша структура каталогов нуждается в доработке. Такие вещи, как config и install, не должны быть доступны из корня документа.
install/index.php
использует конфигурацию? Остерегайтесь рекурсивной ссылки!
Небольшая вещь: мне потребовалось несколько попыток, чтобы правильно понять if ($config_is_ok !== true)
. Вы на самом деле тестируете, чтобы увидеть, плохая ли конфигурация или отсутствует; if ($missing_config) { // redirect }
может быть легче следовать.
пожалуйста, уточните, что такое корень документа
корень документа - локальный
Заголовок будет работать везде, где он вызывается. Начальная косая черта означает относительно корня документа. Или я упускаю суть, и вы спрашиваете, как это сделать с более безопасной структурой каталогов?
но расположение файла меняется с одного «require_once» на другое. в заголовке localhost/index.php('location: localhost/install') и в заголовке localhost/admin/index.php('location: ../install'). как я могу заставить это место в заголовке работать в обоих случаях?
обратитесь к моему предыдущему комментарию. require
относится к файловой системе; заголовок относится к URL. Начиная с косой черты, означает start st localhost
Я забыл косую черту в начале "/", спасибо.
но я заинтересован в том, чтобы не повторяться в коде. Именно поэтому я хочу, чтобы тот код, который вы написали в ответ, импортировать с помощью require_once в файле admin/index.php (Если я это сделаю, то ссылка в шапке.. будет неправильной и будет работать только в основной папке' локальный хост')