Вот моя проблема с использованием функции PHP dirname ()
Позвольте мне сначала объяснить, я работаю над сайтом, где я определил константу следующим образом:
define('ROOT', dirname(__FILE__));
Это хорошо работает на виртуальном хостинге, но мне пришлось перенести сайт на выделенный сервер, и теперь некоторые файлы, которые я пытаюсь вызвать с абсолютной ссылкой, возвращают 404. Когда я смотрю, какой путь они используют, появляется что-то вроде этого:
http://myIp/var/www/myWebsite/[...]/image.jpg
Что происходит, так это то, что моя константа ROOT — это / var / www / myWebsite, но вместо «замены» моего домена она добавляется в конце. Что не имеет смысла, так как мой Apache VirtualHost отправляет все запросы к «myIp» в локальную папку «/ var / www / myWebsite».
Я не знаю, была ли ошибка в моем PHP-коде или в Apache VirtualHost.
Спасибо за вашу помощь, я уверен, что это что-то глупое, но я не могу понять, что я сделал не так 🙂
Я думаю, что вы путаете пути сервера с путями сайта.
Вы не хотели бы использовать dirname, чтобы указать путь к веб-ресурсу.
Если вы действительно хотите сделать это таким образом, вы можете удалить путь к корневому каталогу.
Это может сработать:
define('ROOT', str_replace('/var/www/myWebsite/', '/', dirname(__FILE__)));
Других решений пока нет …