Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

redirection apr header("Location:/chamin/"): nom de domaine obligatoire ?

3 réponses
Avatar
Jean-Francois Ortolo
Bonjour

Avec une instruction de redirection du type:

header("Cache-control: no-cache");
header"Location: /chemin_absolu/fichier.php");

Est-il obligatoire de spécifier le nom de domaine avant le chemin
absolu du script PHP redirigé ?

J'avais cru comprendre que cela n'était pas nécessaire, mais j'ai eu
des bugs quand mon nom de domaine provenait d'un fichier de config,
alors j'ai largué les noms de domaine ( C'est celui de mon site ).

J'avais cru à une modificatio de mon fichier de config...
Probablement faux, mais on n'est jamais trop prudent.

Merci beaucoup de vos réponses.

Bien à vous.

Amicalement.

Jean-François Ortolo

3 réponses

Avatar
Olivier Miakinen
Bonjour,


Avec une instruction de redirection du type:

header("Cache-control: no-cache");
header"Location: /chemin_absolu/fichier.php");

Est-il obligatoire de spécifier le nom de domaine avant le chemin
absolu du script PHP redirigé ?


Oui. Une URI absolue commence par le nom de « scheme ».

<cit. http://www.faqs.org/rfcs/rfc2396.html>
3. URI Syntactic Components
absoluteURI = scheme ":" ( hier_part | opaque_part )
</cit.>

Et, comme tu le signales fort justement, c'est bien une URI absolue
qu'il faut pour un header "Location".

<cit. http://www.faqs.org/rfcs/rfc2616.html>
14.30 Location
Location = "Location" ":" absoluteURI
</cit.>

Cordialement,
--
Olivier Miakinen

Avatar
Jean-Francois Ortolo
Bonjour,

Oui. Une URI absolue commence par le nom de « scheme ».

<cit. http://www.faqs.org/rfcs/rfc2396.html>
3. URI Syntactic Components
absoluteURI = scheme ":" ( hier_part | opaque_part )
</cit.>

Et, comme tu le signales fort justement, c'est bien une URI absolue
qu'il faut pour un header "Location".

<cit. http://www.faqs.org/rfcs/rfc2616.html>
14.30 Location
Location = "Location" ":" absoluteURI
</cit.>

Cordialement,



Bonjour Monsieur

Merci beaucoup de votre réponse.

Effectivement ( j'aurais du commencer par là ), le PHP Manual indique
que l'url paramètre à "Location:" doit être une URI, donc comportant le
nom de domaine.

Mais, comment s'expliquer qu'avec le même client ( commande curl du
même site distant ), on obtienne parfois des redirections, parfois non ?

En tout cas, j'ai corrigé les header concernés de mon site, en
attendant de corriger tous les header de mon site.

Merci beaucoup.

Bien à vous.

Amicalement.

Jean-Francois Ortolo

Avatar
Olivier Miakinen
Bonjour,


Mais, comment s'expliquer qu'avec le même client ( commande curl du
même site distant ), on obtienne parfois des redirections, parfois non ?


Je ne l'explique pas. Les navigateurs en général arrivent à s'en sortir
avec une URI relative bien que ce ne soit pas prévu par la norme. Pour
cela, il faut bien sûr qu'ils aient conservé l'URL de la requête au
moment où la réponse arrive ; quant à Curl je ne sais pas comment il
fonctionne en interne.