web-dev-qa-db-fra.com

Compatibilité du chemin relatif de l'emplacement de l'en-tête

Est-ce emplacement relatif en-tête html absolument compatible avec tous les navigateurs sur toutes les plateformes? Des normes?

Location: some_script.php?la=2&po=2030

Je veux dire, sera-t-il toujours redirigé vers some_script.php dans le répertoire actuel ou non?

25
abrahab

La norme serait la suivante:

header('Location: http://www.mywebsite.com/yourpage.php?id=32', TRUE, 302);

Mais pour répondre à votre question, oui, il sera redirigé vers la page X dans le dossier actuel si vous ne mettez pas de barre oblique au début ou une URL complète.

Voici une idée que je vous suggère de faire pour chaque site Web que vous créez. Dans votre fichier principal (le fichier php principal que vous utilisez comme config ou autre), créez quelque chose comme ça:

define('URL', 'http://www.mywebsite.com/');

Ainsi, lorsque vous créez une redirection, un lien ou autre, vous procédez comme suit:

header('Location: '.URL.'yourpage.php?id=32', TRUE, 302);

EDIT: novembre 2017. Comme indiqué par @jordanbtucker ci-dessous, la spécification HTTP a été mise à jour en juin 2014 (ce message date de 2012) pour autoriser les URI relatifs dans l'en-tête Location.

21
David Bélanger