2010-10-29 64 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); 
?>