#php #url #redirect
#php #url #перенаправление
Вопрос:
У меня есть файл (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 и в админ -> 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’, но я не могу сделать этот заголовок функциональным.
Ответ №1:
С вашей текущей файловой структурой вы перенаправляете на несуществующий файл и, вероятно, неправильно используете функцию exit . Я бы рекомендовал
if($config_is_ok !== true) {
header('location: /install/index.php');
die;
}
Несколько других замечаний для рассмотрения:
- Ваша структура каталогов нуждается в некоторой доработке. Такие вещи, как config и install, не должны быть доступны из корня документа.
install/index.php
Использует ли config? Следите за рекурсивной ссылкой!- Небольшая вещь: мне потребовалось несколько попыток, чтобы правильно понять
if($config_is_ok !== true)
. На самом деле вы тестируете, чтобы увидеть, является ли конфигурация плохой или отсутствует;if($missing_config) { // redirect }
может быть, проще следовать.
Комментарии:
1. но я заинтересован в том, чтобы не повторяться в коде. Вот почему я хочу, чтобы тот код, который вы написали в ответ, импортировал его с помощью require_once в admin / index.php файл (Если я это сделаю, ссылка в заголовке.. будет неправильным и будет работать только в основной папке ‘localhost’)
2. пожалуйста, уточните, что такое корень документа
3. корень документа — localhost
4. Заголовок будет работать везде, где он вызывается. Косая черта переднего плана означает «относительно корня документа». Или я упускаю суть, и вы спрашиваете, как это сделать с более безопасной структурой каталогов?
5. но расположение файла меняется с одного ‘require_once’ на другое. в localhost/index.php заголовок (‘location: localhost / install’) и в localhost/admin/index.php заголовок (‘location: ../install’). как я могу заставить это местоположение в заголовке работать в обоих случаях?