Redirection 302 au lieu de 301 !

Nouveau WRInaute
J'essaye désespérément de faire une redirection 301 mais rien a faire, quand je teste, il apparait que c'est une redirection 302 !!!!


résultat du test sur Yagoort :
http://outils.yagoort.org/httpheader.ht ... ection.php

voici le script de ma page redirection.php :

<?php
function redirection()
{
$url="http://www.colorbox.fr";
header("Status: 301 Moved Permanently", false, 301);
header("Location: ".$url);
exit();
}
?>



<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<?php
redirection()
?>

</body>
</html>


Merci de votre aide.
 
Nouveau WRInaute
j'ai mon url rewriting du type :

564_mon_rewriting

si ma variable "mon_rewriting" change, je souhaite faire la redirection vers la nouvelle url :

564_mon_nouveau_rewriting

Je ne sais pas si cela est possible avec un htaccess ?
 
WRInaute passionné
la redirection 301 modifie l'entête renvoyé par le serveur. comme son nom l'indique l'entête doit être envoyé avant la page html. Le script le plus simple est :
Code:
<?php
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.colorbox.fr/");
exit();
?>
 
WRInaute accro
ton serveur peut "limiter" la fonction header("location: ") et envoyer en 302 si l'url est un site externe. j'ai rencontré ce problème chez certains hébergeurs
 
Nouveau WRInaute
ma redirection intervient avant le <html> dans mon code. Il me semble qu'il est bien placé non ?

La page avec le code php de redirection est située dans le même repertoire que la page de destination !
 
Nouveau WRInaute
Je pense en effet que ça peut provenir du serveur.
Je vais aller fouiller de ce côté.
Si qqu'un a une idée, elle est la bienvenue !
 
WRInaute accro
n.hamel a dit:
ma redirection intervient avant le <html> dans mon code. Il me semble qu'il est bien placé non ?
il faut même qu'il soit effectué avant tout envoi de contenu, ne serait qu'un espace avant le <?php
 
Nouveau WRInaute
J'ai remis mon code sur la ligne 1 mais rien à faire, toujours un 302 ! C'est quand même dingue ça !

Je ne pense pas que ça vienne du serveur puisque les redirections dans mon httpd.ini fonctionnent bien en 301.
 
Nouveau WRInaute
Finalement, j'ai opté pour un script en VB/ASP et là surprise...ça marche !

<%@ Language=VBScript %>
<%
response.status="301 moved permanently"
Response.AddHeader "Location", "http://www.nouvelle URL.com"
%>

Est-ce que ça va bien être suivi par google ?
 
WRInaute discret
+1 je viens de passer su ovh ( kimsufi & suphp )
ce dernier se comporte byzarement avec les redirections 301
( on oublie le chemin relatif, on doit placer l'url complète dedans, sinon il inclut les fichiers .. )
Meme problème rencontré, il adore renvoyer du 302 à la place du 301 :)
Code:
header("Location:http://site.com/url.html",true,301);

Les 302 se produisent en cas de redirection sur le même site, basée sur l'erreur 404
( cf erreur404.php => 301 vers /sitemap.php me retourne une 302
mais erreur404.php => 301 vers autre site est bien une 301 )
 
WRInaute accro
Essaye plutôt ceci:

Code:
header("Status: 301 Moved Permanently", false, 301);
header("Location: http://www.example.com/");
 
Discussions similaires
Haut