PHP包含Mod_Rewrite的路径

时间:2010-10-29 16:10:56

标签: php mod-rewrite

我一直试图找到一种“简单”的方法,在我的PHP文档中包含受mod_rewrite地址更改约束的文件。

目前我们的config.php文件位于public_html / lib / config.php中,我尝试做的是include('lib/config.php'),但是在mod_rewrite改变了地址的网页上出现错误。< / p>

E.g。 “http://www.example.com/user-profile.php?user=123”将使用include('lib/config.php')

使用include('lib/config.php')的“http://www.example.com/user/123”无法找到该文件。

有没有办法为PHP文件设置默认包含路径,因此无论页面位于何处/被重写,include('lib/config.php')都可以正常工作。

由于

3 个答案:

答案 0 :(得分:2)

包含不受mod_rewrite的影响。你的问题必须在其他地方。

答案 1 :(得分:0)

使用完整路径,必须帮助... 喜欢这个

包括dirname($ _ SERVER [“SCRIPT_FILENAME”])。 DIRECTORY_SEPARATOR。 'LIB / config.php中';

(但这很奇怪,重写不会弄乱路径,它只是不能那样工作,可能错误在其他地方)

答案 2 :(得分:0)

首先,请务必检查其他人提及的有关mod_rewrite的问题。

但是要回答你的具体问题:有两种常见的方法可以解决这个问题。

1)您可以使include成为文件的完整路径。如果您打算使用APC,这一点尤为明智。这就是我在所有应用程序中所做的。

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

2)你可以添加修改php include路径。这有效,但在将路径添加到包含路径时会产生性能影响。

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