2009-07-16 64 views
27

目前在我的網站我使用語句喜歡PHP的include_path的路徑。我相信有更好的方法來做到這一點。如何追加在.htaccess

我確信.htaccess是解決方案,但我不確定如何去實施它。如果我插入:

php_value include_path "public/html/root" 

...我失去了我的其他路徑(/usr/lib/php等)。我天真地試過:

php_value include_path $include_path . "(path)" 

但當然這並沒有工作。我怎樣才能在.htaccess的前面添加或追加單個路徑?

回答

22

如果您不能編輯php.ini文件本身,你可以在你的include語句前面添加

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

但是,如果您發現自己有includerequire問題,則可能是代碼異味。最好的解決方案是具有良好的__autoload功能的良好的面向對象設計。

+0

不幸的是,我現在在一個有很多其他網站的服務器上......我不想把path_to_add放在每個單獨的文件中,因爲它像/ home/12345678/public_html這種奇怪的東西...我' d就像以最簡單的方式將「public_html」添加到包含路徑中一樣。當網站轉移時進行搜索和替換似乎很笨重。 – zildjohn01 2009-07-16 03:24:18

+0

你可以用`php_info()`或`get_include_path()`查找當前的php`include_path`,然後添加 php_value include_path「public/html/root:/ first/old/path:/ second/old/path」 到你的`.htaccess`。你只需要做一次。 – Otterfan 2009-07-16 03:35:19

27

在分次目錄與內容

php_value include_path '../../includes' 

或任何include_path適合該目錄創建一個文件.htaccess

優點:

  1. 沒有醜陋的黑客攻擊有多個包括具有不同的深度。只需include 'head.php'
  2. 不依賴編輯php.ini
  3. 包括之前無需使用set_include_path()
  4. 不依賴於包含像include INCLUDE_PATH . 'head.php'這樣的常量。

代價:

你隨手亂扔的每一個文件.htaccess子子目錄。