Redirection avec header() de PHP

Bertrand Michalon

Nouveau WRInaute
Je désire utiliser la fonction header() de php pour une redirection d'url.
Où placer les éléments qui suivent:
header("Status: 301 Moved Permanently");
header("Location: http://www.votresite.com/unepage.htm");
exit();

Dans le partie source de la page que je veux rediriger ?
Si oui, à quel endroit précisément ? Dans la partie HEAD, dans la partie BODY, avant HTML, ... ??

Faut-il mettre la formule entre <? ?>, où les placer ?

Mes excuses pour mon ignorance.
 

Phix

WRInaute occasionnel
Entre <? et ?>, elles doivent être les premières instructions du code donc le plus haut possible. Il n'y a pas besoin de balise html puisque le navigateur n'affichera même pas la page.
 

Bertrand Michalon

Nouveau WRInaute
Je reviens avec mes gros sabots:

je veux rediriger une page -www.mon-domaine.com/list-enR.html
vers -www.mon-domaine.com/paris-hotel.html

j'ai donc fait une page speciale avec PageSpinner comme ton conseil, je l'ai nommée list-enR.html puisque c'est cette page que je veux rediriger. Et je l'ai remplie comme suit, sans autre indication:

<?
header("Status: 301 Moved Permanently");
header("Location: http://w*w.mon-domaine.com/paris-hotel.htm");
exit();
?>

je l'ai envoyé à la racine de mon site. Ca ne marche pas.
 

Phix

WRInaute occasionnel
essaie plutôt:

Code:
header("HTTP/1.1 301 Moved Permanently");
header ('location: http://www.mon-domaine.com/paris-hotel.htm');
header("Connection: close");

Qu'est-ce que PageSpinner?
 

Bertrand Michalon

Nouveau WRInaute
Précédent message:" Et aussi que toute page qui contient du code php doit avoir une extension *.php"

C'est là qu'est l'os hélas car c'est une page en extension .html que je veux rediriger.
Si je comprends bien php ne peut pas rediriger une page en extension .html
Il me semble que les divers livre et lexique et manuels d'emploi que j'ai consulté pourraient au moins le signaler.

sur la rubrique redirection d'url je lis:
"La redirection est définie par une fonction chargée de renvoyer un entête HTTP. Il faut bien sûr bien choisir le code de retour HTTP."

Qu'est-ce que ce code de retour ?

Je pédale dans la semoule :x
 

Phix

WRInaute occasionnel
Le code de retour correspond à un numéro:

302 -> redirection temporaire
301 -> redirection permanente
200 -> OK
...

Y en a un paquet comme ca! :wink:
 

Patrice A.

WRInaute passionné
si tu as droit au .htaccess sur ton domaine, alors pas besoinde php pour faire ta redirection...
sinon fais une balise meta-refresh dans ton html (pas très apprécié des moteurs de recherche, mais fonctionne pour les utilisateurs)
 

PwetPwet

WRInaute impliqué
Dj_Apx a dit:
si tu as droit au .htaccess sur ton domaine, alors pas besoinde php pour faire ta redirection...
sinon fais une balise meta-refresh dans ton html (pas très apprécié des moteurs de recherche, mais fonctionne pour les utilisateurs)

A ce sujet, j'aimerais bien savoir pourquoi les moteurs les boudent le meta-refresh dans le html ? car je l'ai utilisé pour un site et au contraire, j'ai aucun probleme apparent. Comme je suis loin d'être un pro, et j'assume :wink: j'aimerais une explication si c'est possible :D
 

Patrice A.

WRInaute passionné
arkantos a dit:
Les header("Location: ..."); sa fait un lien en dur ?
Non...
jusqu'à preuve du contraire, un lien doit être un "lien" :wink:
c'est-à-dire qu'il doit être sous la forme <a href="....">texte du lien ou image</a>
 

Bertrand Michalon

Nouveau WRInaute
Finalement j'ai fait un lien classique vers ma nouvelle page et une redirection avec la balise meta-refresh (2 secondes). Je n'ai plus que cette méthode en attendant que mon hébergeur daigne répondre à mes questions, et puisqu'une page en .html ne peut pas être redirigée par une fonction php
si j'ai bien compris ...
Question à tout hasard: je suis hébergé par nfrance en basic, puis-je bénéficier du .htaccess ?
 

Discussions similaires

Haut