2010-01-26 306 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()輸出。