Home » Php » How to append a path to PHP's include_path in .htaccess

How to append a path to PHP's include_path in .htaccess

Posted by: admin April 23, 2020 Leave a comment


Currently on my site I’m using statements like:

include 'head.php';
include '../head.php';
include '../../head.php';

depending on how many nested folders deep I am. I’m sure there is a better way to do this.

I’m convinced .htaccess is the solution, but I’m not sure how to go about implementing it. If I insert:

php_value include_path "public/html/root"

… I lose the rest of my paths (/usr/lib/php, etc). I naively tried:

php_value include_path $include_path . "(path)"

but of course this didn’t work. How could I prepend or append a single path to this list with .htaccess?

How to&Answers:

If you can’t edit the php.ini file itself, you could add

set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add);

before your include statements.

However if you find yourself having include or require troubles, it is probably a code smell. The best solution would be a good object-oriented design with a good __autoload function.


Create in the sub-sub-directories a file .htaccess with the contents

php_value include_path '../../includes'

or whatever include_path is right for that directory.


  1. No ugly hack with multiple includes with different depth. Just include 'head.php'.
  2. No dependency on editing php.ini.
  3. No need to use set_include_path() before including.
  4. No dependency on including constants like include INCLUDE_PATH . 'head.php'.

Price to pay:

You litter your sub-sub-directories each with a file .htaccess.