PHP & amp; .htaccess: файл prepend для нескольких каталогов

Я хотел бы добавить 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 файл во всех подкаталогах

Есть ли другой способ указать предварительно добавленный файл, который работает для всех подкаталогов?

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

1

Решение

Определите путь относительно файла автозапуска itsef.

init.php

define('WEBROOT', __DIR__);

Вы должны быть в состоянии использовать WEBROOT где бы в вашем приложении. Или, если вы хотите придерживаться вашего текущего подхода:

$_SERVER['WEB_ROOT'] = __DIR__;

Просто любопытно. Почему бы просто не использовать $_SERVER['DOCUMENT_ROOT'], Разве это не относится к вашему веб-корню?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]