如何在.htaccess中附加到PHP include_path的路径

时间:2009-07-16 03:02:29

标签: php .htaccess include-path

目前在我的网站上我使用的语句如下:

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前缀或附加单个路径到此列表?

2 个答案:

答案 0 :(得分:28)

在子子目录中创建一个文件.htaccess,其内容为

php_value include_path '../../includes'

或任何include_path适合该目录。

优点:

  1. 没有不同深度的多个包含的丑陋黑客。只需include 'head.php'
  2. 不依赖于编辑php.ini
  3. 在包含之前无需使用set_include_path()
  4. 不依赖于包含include INCLUDE_PATH . 'head.php'等常量。
  5. 支付价格:

    您使用文件.htaccess丢弃子子目录。

答案 1 :(得分:23)

如果您无法编辑php.ini文件本身,则可以添加

set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add);
在您的include陈述之前

但是,如果您发现自己遇到includerequire问题,则可能是代码异味。最好的解决方案是良好的面向对象设计,具有良好的__autoload功能。