htaccess - php echo include path
Cómo anexar una ruta a include_path de PHP en.htaccess (2)
Actualmente en mi sitio estoy usando declaraciones como:
include ''head.php'';
include ''../head.php'';
include ''../../head.php'';
dependiendo de la cantidad de carpetas anidadas que soy. Estoy seguro de que hay una mejor manera de hacer esto.
Estoy convencido de que .htaccess
es la solución, pero no estoy seguro de cómo implementarlo. Si inserto:
php_value include_path "public/html/root"
... Perdí el resto de mis rutas ( /usr/lib/php
, etc.). Intenté ingenuamente:
php_value include_path $include_path . "(path)"
pero por supuesto esto no funcionó. ¿Cómo podría anteponer o anexar una sola ruta a esta lista con .htaccess
?
Crea en los subdirectorios un archivo .htaccess
con los contenidos
php_value include_path ''../../includes''
o lo que sea include_path
es correcto para ese directorio.
Ventajas:
- No hack feo con múltiples incluye con diferente profundidad. Solo
include ''head.php''
. - Sin dependencia en la edición de
php.ini
. - No es necesario usar
set_include_path()
antes de incluir. - Ninguna dependencia en incluir constantes como
include INCLUDE_PATH . ''head.php''
include INCLUDE_PATH . ''head.php''
.
Precio a pagar:
Usted ensucia sus subdirectorios cada uno con un archivo .htaccess
.
Si no puede editar el archivo php.ini
, puede agregar
set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add);
antes de sus declaraciones de include
.
Sin embargo, si usted tiene problemas para include
o require
, es probable que sea un olor a código. La mejor solución sería un buen diseño orientado a objetos con una buena función __autoload
.