Racine en php

Fermé
letrancheur Messages postés 210 Date d'inscription dimanche 14 juillet 2013 Statut Membre Dernière intervention 25 août 2020 - Modifié par letrancheur le 28/11/2015 à 15:02
letrancheur Messages postés 210 Date d'inscription dimanche 14 juillet 2013 Statut Membre Dernière intervention 25 août 2020 - 4 déc. 2015 à 15:39
Bonjour,
J'ai un serveur chez hostinger et lorsque je fais des liens absolus, j'ai remarqué que la racine php se situais 3-4 dossier avant la racine html des dossiers aux quels je n'ai pas accès et je voulais donc savoir comment je dois faire pour modifier la racine php de manière à la ramener au même niveau que celle en html?
J'aimerais bien le faire via le htaccess mais je ne sais pas ce que je dois y mettre.

Une idée?
Merci d'avance


A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
30 nov. 2015 à 11:24
Salut,

Il n'est pas possible et pas nécessaire de "ramener la racine php au niveau de la racine html".

Il ne faut pas confondre :
- les chemins via le système de fichier (protocole file) qu'il faut utiliser coté serveur (php include, require, etc...), donc depuis la racine de ton serveur ( par exemple en absolu /home/www/monsite/index.php ).
- les chemins via le serveur web (protocole http) qu'il faut utiliser pour coté client (html balises link, script, requête ajax...), donc depuis la racine de ton site internet ( par exemple en absolu http://monsite.com/index.php ).

Bonne journée,
0
letrancheur Messages postés 210 Date d'inscription dimanche 14 juillet 2013 Statut Membre Dernière intervention 25 août 2020 7
Modifié par letrancheur le 2/12/2015 à 15:42
mais j'aimerais bien lorsque je fais de chemin absolus avec des includes pouvoir mettre par
exemple:
include "/include/head";
et ne pas être obligé de devoir mettre
exemple: include "/home/123456/public_html/include/head";

parsque en local par exemple sur wamp cela fonctionnais et je voudrais donc éviter de devoir modifier toutes mes pages en fonction de l'hébergeur chez qui je suis ce qui n'est évidement pas pratique
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
2 déc. 2015 à 15:54
La solution classique est de définir une constante contenant la racine de ton projet au début de ton application et de réutiliser cette constante dans tes include.
A la mise en ligne du projet, il suffira alors de modifier uniquement cette constante. Par exemple :
define('PATH_ROOT', 'c:/wamp/www/monsite'); // local
// define('PATH_ROOT', '/home/123456/public_html'); // prod

include PATH_ROOT . '/include/head';


Tu peux utiliser le même principe pour les chemins coté client, c'est à dire une constante qui contiendra le chemin vers la racine http de ton projet, soit :
define('URL_ROOT', 'http://localhost/monsite'); // local
// define('URL_ROOT', 'http://www.monsite.com'); // prod

echo '<img src="' . URL_ROOT  '/images/test.jpg" />';
0
letrancheur Messages postés 210 Date d'inscription dimanche 14 juillet 2013 Statut Membre Dernière intervention 25 août 2020 7
2 déc. 2015 à 15:58
et via le htaccess il y a moyen?
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
2 déc. 2015 à 16:23
Il est possible de définir avec Apache des variables d'environnement grâce à la directive SetEnv : https://httpd.apache.org/docs/2.2/mod/mod_env.html
et de les récupérer en php via l'instruction getenv() : https://www.php.net/manual/fr/function.getenv.php
0
letrancheur Messages postés 210 Date d'inscription dimanche 14 juillet 2013 Statut Membre Dernière intervention 25 août 2020 7
Modifié par letrancheur le 2/12/2015 à 22:43
mais je n'ai pas access au serveur je peux juste le modifier via le htaccess c'est pour cela que je demandais si il y avait moyen via ce procédé
0