Как я могу найти базовый URL приложения?

Если вы перенаправляетесь с помощью PHP, тогда вы просто будете использовать команду sleep () для сна за несколько секунд до перенаправления.

Но я думаю, что вы имеете в виду тег meta refresh :

http://webdesign.about.com/od/metataglibraries/a/aa080300a.htm

10
задан 4 revs, 2 users 100% 19 March 2009 в 22:13
поделиться

8 ответов

Я использую следующее в доморощенной платформе... Поместите это в файл в корневой папке Вашего приложения и просто включайте его.

define('ABSPATH', str_replace('\\', '/', dirname(__FILE__)) . '/');

$tempPath1 = explode('/', str_replace('\\', '/', dirname($_SERVER['SCRIPT_FILENAME'])));
$tempPath2 = explode('/', substr(ABSPATH, 0, -1));
$tempPath3 = explode('/', str_replace('\\', '/', dirname($_SERVER['PHP_SELF'])));

for ($i = count($tempPath2); $i < count($tempPath1); $i++)
    array_pop ($tempPath3);

$urladdr = $_SERVER['HTTP_HOST'] . implode('/', $tempPath3);

if ($urladdr{strlen($urladdr) - 1}== '/')
    define('URLADDR', 'http://' . $urladdr);
else
    define('URLADDR', 'http://' . $urladdr . '/');

unset($tempPath1, $tempPath2, $tempPath3, $urladdr);

Вышеупомянутый код определяет две константы. ABSPATH содержит полный путь к корню приложения (локальная файловая система), в то время как URLADDR содержит полностью определенный URL приложения. Это действительно работает в mod_rewrite ситуациях.

15
ответ дан 3 December 2019 в 16:31
поделиться

REQUEST_URI, объединенный с dirname (), может сказать Вам Ваш текущий каталог, относящийся к пути URL:

<?php
  echo  dirname($_SERVER["REQUEST_URI"]);
?>

Таким образом, http://example.com/test/test.php печатает "/тест" или печать http://example.com/ "/", который можно использовать для генерации ссылок для обращения к другим страницам относительно текущего пути.

Править: просто реализованный при перечитывании этого Вы могли бы спрашивать о дисковом пути в противоположность пути URL. В этом случае Вы хотите getcwd PHP () функция вместо этого:

<?php
  echo  getcwd();
?>
2
ответ дан 3 December 2019 в 16:31
поделиться

Поместите это в свой config.php (который находится в корневом каталоге Вашего приложения):

$approot = substr(dirname(__FILE__),strlen($_SERVER['DOCUMENT_ROOT']));

Я думаю, что это сделает это.

1
ответ дан 3 December 2019 в 16:31
поделиться

Если Вы не отслеживаете это сами, я не полагаю, что это имело бы определение. Или скорее Вы просите, чтобы PHP отследил что-то, что Вы несколько произвольно определяете.

Длинное и за исключением него, если я понимаю Ваш вопрос правильно, я не верю тому, что Вы просите, существует, по крайней мере, не как "базовый" PHP; данная платформа может обеспечить "корневой" URL относительно структуры каталогов, которую она понимает.

Это имеет смысл?

1
ответ дан 3 December 2019 в 16:31
поделиться

Я никогда не находил способ сделать его так.

Я всегда заканчиваю тем, что установил переменную конфигурации с путем сервера к одному уровню выше веб-корня. Затем это:

  • $configVar. 'общественность/независимо от того, что /' для материала в корне,
  • но можно также включать снаружи с $configVar. 'phpInc/db.inc.php /' и т.д.
0
ответ дан 3 December 2019 в 16:31
поделиться

Одно решение состояло бы в том, чтобы использовать относительные пути для всего, тот способ, которым не имеет значения, где приложение установлено. Например, для получения до таблицы стилей используйте это:

../css/style.css
0
ответ дан 3 December 2019 в 16:31
поделиться

Если Вы хотите путь в файловой системе, можно использовать $_SERVER['DOCUMENT_ROOT']
Если Вы просто хотите путь файла, который появляется в URL после доменного использования $_SERVER['REQUEST_URI']

0
ответ дан 3 December 2019 в 16:31
поделиться

Это работает как очарование на меня, где угодно я развертываюсь, с или без переписывают правила:

$baseDir = 'http:// '. $ _SERVER ['HTTP_HOST']. (dirname ($ _SERVER ['SCRIPT_NAME'])! = '/'? dirname ($ _SERVER ["SCRIPT_NAME"]). '/'': / ');

0
ответ дан 3 December 2019 в 16:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: