#php-5.2
#php-5.2
Вопрос:
Прежде всего, если вы читаете это, заранее благодарю вас за ваше терпение, — я довольно новичок в PHP, и у меня есть проблема, которую я попытаюсь объяснить / описать.
//set default path
///var/www/vhosts/www.mydomain.com/httpdocs/
$url = 'http://mydomain.com/skins/coolblue/tmp';
$url2 = 'http://mydomain.com/skins/coolblue/tmp';
$doc = $_SERVER['DOCUMENT_ROOT'];
$path = '/templates/';
$actual_url = $doc.'/skins/coolblue/tmp'.$path;
(Изначально у меня был разработчик, который создавал мой сайт и настраивал мой сервер, но теперь он ушел)
мой сайт размещен на выделенном сервере с панелью управления plesk, поэтому, когда я позвонил в Godaddy и спросил у них значение ['DOCUMENT_ROOT']
, они дали мне * /var/www/vhosts/www.mydomain.com/httpdocs/ *
моя проблема в том, что я использую динамические URL-адреса, например subdomain.mydomain.com (который уже настроен и работает должным образом), который, в свою очередь, определяет содержимое, и поскольку выходные данные поступают из определенного скрипта с использованием $_SERVER['DOCUMENT_ROOT']
as выше, URL-адрес всегда является статическим URL-адресом в формате www. . Я хочу, чтобы URL-адрес был динамическим.
Есть ли способ обойти это, или я могу изменить $doc = $_SERVER['DOCUMENT_ROOT'];
на фактический URL-адрес скрипта и добавить динамическую переменную домена ie http://$subdomain/domain.com
? Я перепробовал практически все варианты пути, но безуспешно. У вас есть какие-либо предложения? Кроме того, это $doc = $_SERVER['DOCUMENT_ROOT'];
необходимо, или это был выбор разработчика вместо написания пути? — Еще раз спасибо
Комментарии:
1. Эта часть вашего вопроса не имеет смысла: «как указано выше, URL-адрес всегда является статическим URL-адресом в формате www. » —
DOCUMENT_ROOT
это физический путь к файлу, а не URL. Если вам по какой-либо причине не нужен физический путь к файлу, вам, вероятно, вообще не нужен этот код.
Ответ №1:
Если вы используете файл .htaccess для пересылки ваших поддоменов во вложенные папки (это чистая гипотеза), и наличие пути к файловой системе на самом деле необходимо, вы можете установить переменную среды для перенаправления, чтобы воспользоваться преимуществами, например:
RewriteCond %{HTTP_HOST} subdomain.site.tld$ [NC]
RewriteRule ^(.*)$ /subfolder/$1 [L,E=APPEND_ROOT:subfolder/]
Тогда простая модификация должна дать вам правильный путь:
$doc = $_SERVER['DOCUMENT_ROOT'] . $_ENV['REDIRECT_APPEND_ROOT'];
$_SERVER['DOCUMENT_ROOT'];
необходимо, если вы не хотите настраивать полное имя пути для каждого сайта (что является своего рода проблемой).
Если вы не используете .htaccess для разрешения ваших поддоменов, и вы настроили их в конфигурации Apache, он уже должен указывать на правильный физический дом для каждого поддомена.
Ответ №2:
$_SERVER['DOCUMENT_ROOT']
это путь., попробуйте использовать 'SERVER_NAME'
или 'REQUEST_URI'
‘ИМЯ_СЕРВЕРА’
Имя хоста сервера, под которым выполняется текущий скрипт. Если скрипт выполняется на виртуальном хосте, это будет значение, определенное для этого виртуального хоста.
или
‘REQUEST_URI’
URI, который был указан для доступа к этой странице; например, ‘/index.html «.