2010-01-26 311 views
2

设置包含路径真的让我感到困惑。我必须错过重要的事情。PHP包含路径问题

所以我在我的服务器的public_html文件夹中有以下脚本。

photoGallery.php 
    header.php 

我有我的htaccess文件设置为具有以下结构的URL重定向到photoGallery.php

RewriteRule ^gallery/([^/]+)/([0-9]+)-([^/]+)$ photoGallery.php?imageName=$2 [L] 

因此,像这样......

http://localhost/gallery/roofing/1-picture-of-roofing 

将解析。 ..

http://localhost/photoGallery.php?imageName=1 

问题是photoGallery.php中有一个PHP包含,如果URL已被重写,它将无法解析。

include 'header.php' 

所以我想设置php的include路径,所以无论如何它都会解析。以下是我已经试过......

set_include_path(get_include_path() . PATH_SEPARATOR . "../../../"); 
include 'header.php'; 

我也试着设置像这样的路径...

// get_include_path() returns .:/opt/lampp/lib/php 
set_include_path(get_include_path() . PATH_SEPARATOR . "/opt/lampp/public_html"); 
include 'header.php'; 

我从来没有能够成功地设置包含路径。我究竟做错了什么?

+0

顺便说一下,Mod_Rewrite不会影响包含。 – 2010-01-26 22:00:36

回答

5

你可以尝试:

include($_SERVER['DOCUMENT_ROOT'] . '/header.php'); 
1

加入电话:http://php.net/manual/en/function.getcwd.php相同的脚本

set_include_path(get_include_path() . PATH_SEPARATOR . "/opt/lampp/public_html"); 

再调整 “的/ opt/LAMPP /的public_html” 根据GETCWD()输出。