Page 1 sur 1

[Résolu] redirection trop haute

Posté : 02 janv. 2009, 17:21
par bourepif
Bonjour,

Dans une page php de mon projet (nous l'appelerons toto), j'ai ça:

Code : Tout sélectionner

header("Location: /index.php");
Jusqu'ici rien d'extraordinaire, mais lorsque ce code est exécuté, il m'affiche l'index.php du serveur (http://localhost/xampp/) et non pas celui contenu à la racine de mon projet (http://localhost/xampp/toto)

Est-ce un fonctionnement normal? Il me semble que d'habitude les projets sont cloisonnés un minimum !

Merci d'avance pour vos réponses 8-)

Posté : 02 janv. 2009, 17:28
par Calimero
C'est normal :-)

Le / initial désigne la racine du domaine. Tu peux soit l'enlever, ce qui redirigera vers 'index.php' dans le répertoire courant, soit préfixer à la place du / par le chemin (absolu ou relatif) du répertoire à atteindre.

Le cloisonnement maximum est atteint avec des hôtes virtuels séparés (un domaine par site), ce qui ne semble pas être le cas de ta machine de développement (comme beaucoup d'autres...) mais qui est souvent le cas en production.

Posté : 02 janv. 2009, 17:33
par bourepif
Aaaah d'accord.

Comme mon projet doit être déployable sur le serveur du client et que ce projet ne portera sûrement pas le même nom là-bas, il ne me reste que les chemins relatifs si je comprends bien, et donc avoir une redirection personnalisée pour chaque fichier contenant une redirection. Tant pis, ç'eut été bien pratique de factoriser le code.

Merci pour ta promptitude!

Posté : 02 janv. 2009, 17:40
par Calimero
Comme mon projet doit être déployable sur le serveur du client et que ce projet ne portera sûrement pas le même nom là-bas, il ne me reste que les chemins relatifs si je comprends bien, et donc avoir une redirection personnalisée pour chaque fichier contenant une redirection. Tant pis, ç'eut été bien pratique de factoriser le code.
En fait, tu as trois solutions au choix :

1/ Tu passes tes configurations (développement et production) en virtualhosts en offrant donc à ton site un domaine pour lui tout seul, et dans ce cas tu peux laisser ta redirection en l'état (c'est ma petite préférence personnelle, si cela t'es possible bien sûr).
2/ Tu préfixes avec les chemins relatifs (c'est _en général_ le plus souple).
3/ Tu préfixes avec des chemins absolus, lus à partir de variables $_SERVER ou encore à partir d'un fichier de configuration.

Posté : 02 janv. 2009, 17:48
par bourepif
Oui merci j'ai bien compris :-) Si ça avait été un projet perso j'aurais utilisé la solution 1, mais là il s'agit d'un projet existant d'un client, j'aime autant que mes modifs marchent chez lui dans tous les cas de figure et du premier coup :P