Как я могу указать auto_prepend_file в моем файле .htaccess без жесткого кодирования абсолютного пути? - PullRequest
3 голосов
/ 15 июня 2011

У меня есть файл PHP, который я хочу выполнить в начале каждого запроса. Я указал его в своем файле htaccess:

php_value auto_prepend_file "alwaysrunthis.php"

Проблема в том, что значение этой директивы выполняется в контексте целевого сценария, а не в контексте расположения файла .htaccess. Так что это работает, если скрипт, который я выполняю, находится в том же каталоге, что и файл prepend, но в противном случае - нет.

Я понимаю, что могу использовать абсолютный путь, но он не очень переносим. Есть ли переменная, к которой я могу получить доступ в .htaccess для генерации абсолютного пути во время выполнения?

1 Ответ

3 голосов
/ 15 июня 2011

Короткий ответ, нет.

Длинный ответ, вы, вероятно, можете заставить его работать так, как вы хотите.

Вы можете создать файл автоприготовления, чтобы использовать переменную $_SERVER['DOCUMENT_ROOT'] для определениякакой файл включить, используя конструкцию switch / if-else.

Или вы можете использовать переменную __FILE__ в сочетании с realpath, чтобы включить / запросить нужный файл "prepend".

auto-prepend.php
require_once(realpath(__FILE__) . '/prepend.php');

// edit:
подумал еще немного, __FILE__, вероятно, будет ссылаться на файл prepend вместо запрошенного файла, поэтомуэто может работать не так, как ожидалось.

...