Я хотел бы добавить PHP-скрипт автоматически, используя .htaccess
, Я знаю, что есть директива для этого. У меня есть следующее в моем .htaccess
файл в корневом веб-каталоге:
php_value auto_prepend_file "./init.php"
Содержание init.php
файл включает в себя:
<?php
$_SERVER['WEB_ROOT']=
str_replace($_SERVER['SCRIPT_NAME'],'',
$_SERVER['SCRIPT_FILENAME']);
Это вычисляет путь веб-корня и помещает его в суперглобальный. Это единственный практичный способ отслеживать корень в Интернете для таких вещей, как включает в себя.
Проблема в том, что это работает только для сценариев PHP также в корне сети. Если сам скрипт находится в подкаталоге, я получаю сообщение об ошибке, потому что init.php
Файл не находится в текущем каталоге. я не хотите указать абсолютный путь к init.php
потому что ток немного нестабилен в данный момент.
Я могу думать о 2 решениях:
.htaccess
файл в подкаталогах, указывающий на родительский каталог с использованием относительного пути (../init.php
)init.php
файл во всех подкаталогахЕсть ли другой способ указать предварительно добавленный файл, который работает для всех подкаталогов?
В противном случае, есть ли другой способ превратить веб-корень в суперглобальный без этой чепухи?
Определите путь относительно файла автозапуска itsef.
init.php
define('WEBROOT', __DIR__);
Вы должны быть в состоянии использовать WEBROOT
где бы в вашем приложении. Или, если вы хотите придерживаться вашего текущего подхода:
$_SERVER['WEB_ROOT'] = __DIR__;
Просто любопытно. Почему бы просто не использовать $_SERVER['DOCUMENT_ROOT']
, Разве это не относится к вашему веб-корню?
Других решений пока нет …