[Résolu] redirection trop haute

Petit nouveau ! | 5 Messages

02 janv. 2009, 17:21

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-)
Modifié en dernier par bourepif le 02 janv. 2009, 17:39, modifié 1 fois.

ViPHP
ViPHP | 2287 Messages

02 janv. 2009, 17:28

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.
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Petit nouveau ! | 5 Messages

02 janv. 2009, 17:33

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!

ViPHP
ViPHP | 2287 Messages

02 janv. 2009, 17:40

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.
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Petit nouveau ! | 5 Messages

02 janv. 2009, 17:48

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