2010-10-29 63 views
0

我一直在試圖找到包括我的PHP文件是受mod_rewrite的地址更改文件的「易」的方式。PHP包含路徑與mod_rewrite的

目前我們的config.php文件位於public_html/lib/config.php文件中,我試圖做的是include('lib/config.php'),但是它的地址被mod_rewrite改變了地址的錯誤。

E.g. 「http://www.example.com/user-profile.php?user=123」 將致力於使用include('lib/config.php')

「http://www.example.com/user/123」 使用include('lib/config.php')無法找到該文件。

有什麼辦法來設置默認包括PHP文件的路徑,從而無論在何處頁位於/重寫的include('lib/config.php')作品。

感謝

+3

mod_rewrite應該對inlude路徑沒有影響(因爲這些路徑並不像HTTP請求那樣處理)。 – Mchl 2010-10-29 16:13:58

+0

@Mchl說什麼。如果PHP文件是相同的,路徑將是相同的 – 2010-10-29 16:18:23

回答

2

包括不受mod_rewrite。你的問題一定在別的地方。

0

使用完整路徑,必須幫助...... 像這樣

包括目錄名($ _ SERVER [ 「SCRIPT_FILENAME」])。 DIRECTORY_SEPARATOR。 'LIB/config.php中';

(但是,這是奇怪的,改寫與路徑souldn't一塌糊塗,它只是不工作這樣的,可能是錯誤別處)

0

首先,一定要檢查有關mod_rewrite的其他人都在提問題。

但是,爲了回答您的具體問題:有來處理這兩種常用的方法。

1)可以使包括是文件的完整路徑。如果你打算使用APC,不需要詳細說明,這是特別可取的。這是我在所有應用程序中所做的。

<?php 
define('BASE_DIR', '/path/to/includes'); 
include BASE_DIR . "/lib/config.php"; 
?> 

2)您可以添加ammend php包含路徑。這有效,但在將路徑添加到包含路徑時會有性能影響。

<?php 
$path = '/path/to/public_html'; 
set_include_path(get_include_path() . PATH_SEPARATOR . $path); 
?>