2010-01-26 4 views
2

La définition du chemin d'inclusion est vraiment déroutante. Je dois manquer quelque chose d'important. J'ai donc les scripts suivants dans le dossier public_html de mon serveur.PHP Inclure les problèmes de chemin

photoGallery.php 
    header.php 

J'ai mon fichier htaccess mis à rediriger une URL avec la structure suivante à photoGallery.php

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

Donc, quelque chose comme ça ...

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

résoudrait à. ..

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

Le problème est qu'il y a un PHP à l'intérieur de photoGallery.php qui ne sera pas résolu si l'URL a été réécrite. Donc, je voudrais définir le chemin d'inclusion php de sorte qu'il va résoudre n'importe quoi. Voici ce que j'ai essayé ...

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

J'ai aussi essayé de placer le chemin comme si ...

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

Je ne l'ai jamais été en mesure de mettre avec succès le chemin d'inclusion. Qu'est-ce que je fais mal?

+0

BTW, Mod_Rewrite n'affecte pas les inclusions. –

Répondre

5

Vous pouvez essayer:

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

Ajouter un appel à: http://php.net/manual/en/function.getcwd.php au même scénario que

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

Et puis réglez "/ opt/lampp/public_html", selon le getcwd() sortie.