OVH Cloud OVH Cloud

DOCUMENT_ROOT de Apache chez OVH mutualisé

3 réponses
Avatar
Stéphane Santon
Bonjour,

Je suis gêné par les caractéristiques spéciales de la conf Apache de
OVH, et par ses conséquences sur mon script PHP.

Voici pour exemple un .htaccess :

RewriteEngine on
RewriteBase /
RewriteRule ^info1\.php$ subdir/info.php [QSA,L]
RewriteRule ^subdir/info2\.php$ subdir/info.php [QSA,L]

et j'ai le fichier /subdir/info.php qui affiche la variable $_SERVER.

En appelant http://www.mondomaine.com/subdir/info.php :
[DOCUMENT_ROOT] => /home/mondomaine/www
-> OK

En appelant http://www.mondomaine.com/subdir/info2.php :
[DOCUMENT_ROOT] => /home/mondomaine/www
-> OK

Mais en appelant http://www.mondomaine.com/info1.php :
[DOCUMENT_ROOT] => /home/mondomaine/www/subdir
-> le DOCUMENT_ROOT n'est pas le même, le dossier de RewriteRule a été
ajouté !!

Ca m'embête pour mes
include( $_SERVER[ 'DOCUMENT_ROOT'].'/libs/lib1.php');
qui ne sont plus accessibles après un RewriteRule !!!

Comment uniformiser l'appel à include ???

Merci

3 réponses

Avatar
Patrick Mevzek
Ca m'embête pour mes
include( $_SERVER[ 'DOCUMENT_ROOT'].'/libs/lib1.php');
qui ne sont plus accessibles après un RewriteRule !!!

Comment uniformiser l'appel à include ???


Pourquoi ne pas, dans le .htaccess de plus haut niveau, créer une
variable d'environnement avec SetEnv qui contiendra le chemin complet de
la racine, et récupérer cette variable d'environnement dans tous vos
scripts PHP ?

Plusieurs gains:
1) vous ne dépendez plus de la configuration de votre hébergeur
2) vous n'utilisez plus de règles de réécritures, ce qui améliorera
les performances, surtout quand elles sont dans un .htaccess.
Et accessoirement
3) ca devrait fonctionner :-)

Cela peut paraître embêtant parce que le chemin est codé en dur quelque
part, mais au moins il n'est codé qu'une seule fois à un seul endroit.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>

Avatar
Stéphane Santon
Bonjour,

Oui, c'est très intéressant.
J'ai en fait codé en dur une variable au début de mon script php par
define(), mais la créer dans .htaccess ça m'intéresse.
Je ne connaissais pas cette fonctionnalité, faudra que je regarde la
syntaxe.
Merci ! :-)

Patrick Mevzek a exposé le 24/05/2006 :
Pourquoi ne pas, dans le .htaccess de plus haut niveau, créer une
variable d'environnement avec SetEnv qui contiendra le chemin complet de
la racine, et récupérer cette variable d'environnement dans tous vos
scripts PHP ?

Cela peut paraître embêtant parce que le chemin est codé en dur quelque
part, mais au moins il n'est codé qu'une seule fois à un seul endroit.


Avatar
Patrick Mevzek
J'ai en fait codé en dur une variable au début de mon script php par
define(), mais la créer dans .htaccess ça m'intéresse.
Je ne connaissais pas cette fonctionnalité, faudra que je regarde la
syntaxe.


Côté Apache :
http://httpd.apache.org/docs/1.3/mod/mod_env.html#setenv

Côté PHP :
http://fr3.php.net/manual/fr/function.getenv.php

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>