Работа с путями на локальном сервере и обычном сервере

У меня проблема. Я хочу использовать локальный сервер (WAMP) и онлайн-сервер (000webhost) одновременно.
Теперь проблема с моими путями к файлам. Я не могу использовать нормальные пути, такие как (../contact.php), потому что я использую php include-файлы, и тогда путь будет другим, потому что я включаю файл на весь сайт.

Теперь я хотел использовать абсолютные пути, такие как (/main/include/header.inc.php)
Но корневая папка на онлайн-сервере и локальном сервере отличается, поэтому это тоже не сработает.

Есть ли какие-либо решения, которые я могу использовать?

Jelmer

0

Решение

Установить константу корневого веб-каталога ROOT что вы можете использовать для загрузки файловых путей. Для каждого сервера установите соответствующий путь. Удостоверьтесь, что загружается в начале первого попадания файла для каждого запроса.

<?php
define('ROOT', `/var/www/html/site`);
...

Теперь загрузите ваши файлы с постоянной

include ROOT . '/directory/file.php';

Очевидно, установить постоянные разные для каждого сервера.

Вы также можете поместить свой define () в оператор if.

<?php
if($_SERVER['SERVER_NAME'] === 'localhost'){
define('ROOT','/wamp/dir/'); //obviously not your actual dir
}else{
define('ROOT','/online/dir/'); //obviously not your actual dir
}

ОБНОВИТЬ

Лучшей идеей может быть использование переменных среды вместо conts.

Установка CONST на каждой странице немного утомительна. Я нашел этот пост, который объясняет, как установить переменную окружения в .htaccess. таким образом, нам нужно только установить его в одном месте и получить к нему доступ во всех файлах.

например:

//.htaccess
SetEnv ROOT /var_www/html/site/

Теперь я могу получить это значение во всех моих файлах .php:

<?php
include getenv('ROOT'); . '/directory/file.php';

кредит:

сохранить постоянную переменную на сервере через .htaccess

0

Другие решения

Других решений пока нет …