dirname (__ FILE__) добавляет путь после моего домена

0

Здесь моя проблема с использованием функции dirname() функции PHP

Позвольте мне сначала объяснить, я работаю на веб-сайте, где я определил константу следующим образом:

define('ROOT', dirname(__FILE__));

Это хорошо работало на общем хостинге, но мне пришлось переместить веб-сайт на выделенный сервер, а теперь некоторые файлы, которые я пытаюсь вызвать, с абсолютной ссылкой return 404. Когда я смотрю, какой путь они используют, появляется следующее:

http://myIp/var/www/myWebsite/[...]/image.jpg

Случается, что моя константа ROOT является "/var/www/myWebsite", но вместо "Замена" моего домена она добавляется в конце. Что не имеет смысла, так как мой Apache VirtualHost отправляет все запросы в "myIp" в локальную папку "/var/www/myWebsite".

Я не знаю, является ли ошибка либо моим PHP-кодом, либо моим Apache VirtualHost.

Спасибо за вашу помощь, я уверен, что это что-то глупое, но я не могу понять, что я сделал неправильно :)

  • 0
    Почему бы вам не определить эту константу ROOT конкретно? Вывести относительный сегмент пути сайта из текущего рабочего каталога несколько сложнее.
  • 0
    Да, мне бы хотелось, чтобы мне нужна была только постоянная переменная, которую я могу вызвать, чтобы сократить вызовы изображений, хотя я думал, что это был правильный способ сделать это, но поскольку dirname () превращает относительный путь в абсолютный путь Я, наверное, не делаю самое чистое.
Теги:
path
absolute

1 ответ

0
Лучший ответ

Я думаю, что вы путаете пути сервера с помощью путей к сайту.

Вы не хотели бы использовать dirname, чтобы дать вам путь к веб-ресурсу.

Что вы могли бы сделать, если вы действительно хотите это сделать, это удалить путь к вашему веб-корню.

Это может сработать:

define('ROOT', str_replace('/var/www/myWebsite/', '/', dirname(__FILE__)));

  • 0
    Вы правы, и это подходит от того, что я хочу, но как тогда назвать путь к корневому сайту? Хотя путь к корневому сайту и путь к корневому серверу идентичны
  • 0
    Путь к корневому веб-сайту - это /, тогда как абсолютный путь на сервере к корневому веб-сайту - / var / www / myWebsite / (или что бы то ни было)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню