Как добавить путь к PHP include_path в .htaccess
В настоящее время на моем сайте я использую такие выражения, как:
include 'head.php';
include '../head.php';
include '../../head.php';
в зависимости от того, сколько я вложенных папок. Я уверен, что есть лучший способ сделать это.
Я убежден, что .htaccess
- это решение, но я не уверен, как его реализовать. Если я вставляю:
php_value include_path "public/html/root"
... Я теряю остальные мои пути (/usr/lib/php
и т.д.). Я наивно пытался:
php_value include_path $include_path . "(path)"
но, конечно, это не сработало. Как я могу добавить или добавить один путь к этому списку с помощью .htaccess
?
Ответы
Ответ 1
Если вы не можете редактировать файл php.ini
, вы можете добавить
set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add);
перед вашими утверждениями include
.
Однако, если вы обнаруживаете проблемы с include
или require
, это, вероятно, запах кода. Лучшим решением будет хороший объектно-ориентированный дизайн с хорошей функцией __autoload
.
Ответ 2
Создайте в под-подкаталогах файл .htaccess
с содержимым
php_value include_path '../../includes'
или любой другой include_path
подходит для этого каталога.
Преимущества:
- Без уродливого взлома с несколькими включениями с разной глубиной. Просто
include 'head.php'
.
- Нет зависимости от редактирования
php.ini
.
- Не нужно использовать
set_include_path()
перед включением.
- Никакая зависимость от включения констант, таких как
include INCLUDE_PATH . 'head.php'
.
Цена:
Вы помещаете свои под-подкаталоги каждый с файлом .htaccess
.