{"id":7765,"date":"2020-10-02T15:52:11","date_gmt":"2020-10-02T15:52:11","guid":{"rendered":"https:\/\/blog.hostinger.io\/fr-tutoriels\/?p=7765"},"modified":"2025-03-03T23:40:25","modified_gmt":"2025-03-03T23:40:25","slug":"redirection-php","status":"publish","type":"post","link":"\/fr\/tutoriels\/redirection-php","title":{"rendered":"Comment faire une redirection PHP (en toute s\u00e9curit\u00e9)"},"content":{"rendered":"<p>Une redirection PHP est un outil incroyablement utile, mais aussi dangereux en cas de mauvaise impl&eacute;mentation.<\/p><p>Si vous avez lu notre <strong>introduction &agrave; PHP 7.4<\/strong> et notre guide sur la fa&ccedil;on de <strong>cr&eacute;er un site web en 5 minutes<\/strong>, vous savez que la fonction <strong>header()<\/strong> peut &ecirc;tre utilis&eacute;e pour rediriger facilement un utilisateur vers une autre page. En r&eacute;alit&eacute;, cependant, l&rsquo;utilisation de cette fonction n&rsquo;est pas aussi simple qu&rsquo;il n&rsquo;y para&icirc;t. Dans ce guide, nous vous montrerons comment faire une redirection PHP qui ne pose pas de gros probl&egrave;mes plus tard.<\/p><figure class=\"wp-block-image size-full\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/Speed-Up-Your-Website-FR.pdf\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"283\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/eBook_-Speed-Up-your-website-FR-1024x283-1.png\/public\" alt=\"\" class=\"wp-image-41455\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/eBook_-Speed-Up-your-website-FR-1024x283-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/eBook_-Speed-Up-your-website-FR-1024x283-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/eBook_-Speed-Up-your-website-FR-1024x283-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/eBook_-Speed-Up-your-website-FR-1024x283-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-la-methode-de-base-pour-une-redirection-php\">La m&eacute;thode de base pour une redirection PHP<\/h2><p>La plupart des guides vous diront que pour effectuer une redirection PHP, il suffit d&rsquo;utiliser la fonction <strong>header()<\/strong> en haut de vos pages. Pour ce faire, vous utilisez la fonction pour envoyer une nouvelle URL, comme ceci :<\/p><pre class=\"wp-block-preformatted\">header('Location: '.$newURL.php);<\/pre><p>La fonction header doit &ecirc;tre plac&eacute;e avant de transmettre tout HTML ou texte aux navigateurs de vos utilisateurs, elle doit donc se trouver en haut de la page. Cela signifie qu&rsquo;elle doit &ecirc;tre plac&eacute;e avant la d&eacute;claration <strong>&lt;!DOCTYPE&gt;<\/strong>, avant tout code Java et avant tout code PHP. Elle enverra ensuite les utilisateurs &agrave; la nouvelle URL.<\/p><p>Bien que cela puisse para&icirc;tre simple, en ce qui concerne la fonction <strong>header()<\/strong>, la simplicit&eacute; du code peut donner aux d&eacute;veloppeurs une fausse impression de s&eacute;curit&eacute;. Voyons donc comment utiliser correctement cette fonction.<\/p><h3 class=\"wp-block-heading\" id=\"h-die-et-exit\"><b>Die() et Exit ()<\/b><\/h3><p>Tout d&rsquo;abord, vous devez utiliser le modificateur <strong>die()<\/strong> ou <strong>exit()<\/strong> chaque fois que vous utilisez une redirection. En r&eacute;sum&eacute;, le probl&egrave;me est que les crawlers et les robots sont capables d&rsquo;ignorer les en-t&ecirc;tes, et donc la page que vous pensiez rediriger leur est totalement accessible. En d&rsquo;autres termes, si vous utilisez une redirection de type header pour prot&eacute;ger une page particuli&egrave;re, elle ne vous offre aucune protection.<\/p><p>C&rsquo;est pourquoi vous devez arr&ecirc;ter le reste du code de la page si la redirection est ignor&eacute;e. La fa&ccedil;on de le faire est d&rsquo;ajouter <strong>die()<\/strong> ou <strong>exit()<\/strong> apr&egrave;s votre redirection :<\/p><pre class=\"wp-block-preformatted\">header(\"Location: .$newURL.php\");\ndie();<\/pre><h3 class=\"wp-block-heading\" id=\"h-liens-relatifs-et-absolus\">Liens relatifs et absolus<\/h3><p>Ensuite, parlons des liens URL relatifs et absolus dans les redirections. La <a href=\"https:\/\/greenbytes.de\/tech\/webdav\/rfc7231.html#header.location\" target=\"_blank\" rel=\"noopener\"><strong>RFC 7231<\/strong><\/a> vous permet d&rsquo;utiliser les deux, mais vous devez &ecirc;tre extr&ecirc;mement prudent lorsque vous utilisez des redirections relatives. C&rsquo;est parce que certains cr&eacute;ateurs de sites web rassemblent et renomment les pages PHP. Cela signifie que si vous travaillez sur votre PHP par l&rsquo;interm&eacute;diaire d&rsquo;un cr&eacute;ateur de site web, vous risquez de casser toutes vos redirections.<\/p><p>Malheureusement, il n&rsquo;existe actuellement aucun moyen r&eacute;el de contourner ce probl&egrave;me, &agrave; moins de garder une vue d&rsquo;ensemble pr&eacute;cise de l&rsquo;endroit o&ugrave; vos redirections pointent.<\/p><h3 class=\"wp-block-heading\" id=\"h-codes-d-etat\">Codes d&rsquo;&eacute;tat<\/h3><p>Le troisi&egrave;me probl&egrave;me des redirections PHP standard est que l&rsquo;op&eacute;rateur de &ldquo;localisation&rdquo; de PHP renvoie toujours le <a href=\"https:\/\/www.hostinger.com\/fr\/tutoriels\/erreur-302\"><strong>code HTTP 302<\/strong><\/a>. Vous ne devriez pas l&rsquo;autoriser &agrave; faire cela, car de nombreux navigateurs web impl&eacute;mentent ce code d&rsquo;une mani&egrave;re qui est totalement en contradiction avec la mani&egrave;re dont il est cens&eacute; fonctionner : ils utilisent essentiellement la commande GET au lieu d&rsquo;effectuer une &ldquo;vraie&rdquo; redirection.<\/p><p>La meilleure pratique pour cr&eacute;er des redirections PHP consiste donc &agrave; sp&eacute;cifier le code qui est renvoy&eacute;. Malheureusement, le code correct &agrave; utiliser est un point de discorde. HTTP 301 indique une redirection permanente, ce qui peut vous causer des probl&egrave;mes pour restaurer votre page d&rsquo;origine. HTTP 303 est malheureusement compris comme &ldquo;autre&rdquo; par de nombreux navigateurs et peut causer des probl&egrave;mes d&rsquo;indexation de votre page par les moteurs de recherche.<\/p><p>En pratique, et jusqu&rsquo;&agrave; ce que cette situation soit r&eacute;solue, utilisez le HTTP 303.<\/p><h3 class=\"wp-block-heading\" id=\"h-consultez-la-documentation\">Consultez la documentation<\/h3><p>Outre les pr&eacute;cautions de base ci-dessus, vous devriez prendre le temps de lire la documentation sur l&rsquo;utilisation des redirections PHP avant de les publier. Vous devriez v&eacute;rifier le <a href=\"https:\/\/www.php.net\/manual\/fr\/function.header.php\" target=\"_blank\" rel=\"noopener\"><strong>manuel PHP<\/strong><\/a> pour vous assurer que vous comprenez ce que vous faites, ainsi que la <a href=\"https:\/\/www.w3.org\/Protocols\/rfc2616\/rfc2616-sec14.html#sec14.30\" target=\"_blank\" rel=\"noopener\"><strong>documentation du W3C<\/strong><\/a> pour vous assurer que vous suivez les meilleures pratiques.<\/p><p>Et pendant que vous rattrapez votre retard de lecture, veillez &eacute;galement &agrave; prot&eacute;ger un site web contre les <a href=\"https:\/\/privacycanada.net\/network-vulnerabilities\/\" target=\"_blank\" rel=\"noopener\"><strong>vuln&eacute;rabilit&eacute;s courantes<\/strong><\/a> : si vous &ecirc;tes d&eacute;j&agrave; dans la position de devoir utiliser des redirections PHP, il est probable que la s&eacute;curit&eacute; de votre site devra faire l&rsquo;objet d&rsquo;un audit.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" width=\"1024\" height=\"179\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/10\/privacycanada.png\/public\" alt=\"Liste des vuln&eacute;rabilit&eacute;s du r&eacute;seau de Privacy Canada\" class=\"wp-image-7769\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/10\/privacycanada.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/10\/privacycanada.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/10\/privacycanada.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2020\/10\/privacycanada.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><h3 class=\"wp-block-heading\" id=\"h-autres-methodes\">Autres m&eacute;thodes<\/h3><p>Compte tenu de tous ces probl&egrave;mes, vous vous demandez probablement pourquoi vous utiliseriez une redirection PHP. C&rsquo;est une question tout &agrave; fait l&eacute;gitime. Bien que les redirections PHP soient g&eacute;n&eacute;ralement ex&eacute;cut&eacute;es plus rapidement que les autres types de redirection, et peuvent donc &ecirc;tre un outil important pour am&eacute;liorer la vitesse des sites web, il existe d&rsquo;autres options.<\/p><p>Il existe deux approches principales pour y parvenir. Vous pouvez soit utiliser l&rsquo;&eacute;l&eacute;ment HTML <strong>&lt;meta&gt;<\/strong> pour rediriger &agrave; partir de la partie HTML de votre page, soit utiliser <a href=\"https:\/\/www.hostinger.com\/fr\/tutoriels\/qu-est-ce-que-javascript\"><strong>JavaScript<\/strong><\/a>. La premi&egrave;re approche, qui consiste &agrave; utiliser l&rsquo;&eacute;l&eacute;ment <strong>&lt;meta&gt;<\/strong>, se pr&eacute;sente comme suit :<\/p><pre class=\"wp-block-preformatted\">&lt;meta http-equiv=\"refresh\" content=\"0;url=newpage.php\"&gt;<\/pre><p>La deuxi&egrave;me m&eacute;thode &ndash; utilisant JavaScript &ndash; est un peu plus &eacute;l&eacute;gante et semble certainement plus professionnelle :<\/p><pre class=\"wp-block-preformatted\">window.location.replace(\"http:\/\/newpage.php\/\");<\/pre><p>Ces deux m&eacute;thodes sont un peu plus lentes qu&rsquo;une redirection imm&eacute;diate du <strong>header()<\/strong>, mais on peut dire qu&rsquo;elles sont plus souples.<\/p><figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hostinger.com\/fr\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-Web-hosting_in-text-banner-1-1024x300-1.png\/public\" alt=\"\" class=\"wp-image-41467\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-Web-hosting_in-text-banner-1-1024x300-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-Web-hosting_in-text-banner-1-1024x300-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-Web-hosting_in-text-banner-1-1024x300-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-Web-hosting_in-text-banner-1-1024x300-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-un-dernier-mot\">Un dernier mot<\/h2><p>Si suivre les &eacute;tapes ci-dessus devrait signifier que vos redirections PHP s&rsquo;ex&eacute;cutent en toute s&eacute;curit&eacute;, si vous &ecirc;tes en mesure d&rsquo;utiliser plusieurs redirections PHP, il est probablement temps de repenser la structure de votre site.<\/p><p>Il y a plusieurs bonnes raisons pour le faire. La premi&egrave;re est que <a href=\"https:\/\/wpmayor.com\/the-murky-waters-of-free-web-hosting\/\" target=\"_blank\" rel=\"noopener\"><strong>pas tous les h&eacute;bergeurs web ne sont cr&eacute;&eacute;s &eacute;gaux<\/strong><\/a>, et si vous envoyez tous vos visiteurs sur un itin&eacute;raire d&eacute;tourn&eacute; autour de votre site, cela va affecter ses performances. Il est possible d&rsquo;am&eacute;liorer cette situation dans une certaine mesure en faisant appel &agrave; un <a href=\"https:\/\/hostingdata.co.uk\/best-cheap-hosting\/\" target=\"_blank\" rel=\"noopener\"><strong>h&eacute;bergeur web abordable<\/strong><\/a>, mais seulement dans une certaine mesure.<\/p><p>La deuxi&egrave;me raison est que la page &agrave; partir de laquelle vous redirigez pourrait recueillir des donn&eacute;es sur vos visiteurs sans que vous en ayez conscience, en particulier si vous utilisez un logiciel d&rsquo;analyse web pour suivre les performances de votre site. Dans notre monde apr&egrave;s l&rsquo;adoption de la directive sur la protection des donn&eacute;es (<a href=\"https:\/\/www.hostinger.com\/blog\/what-the-european-gdpr-means-for-hostinger-customers\/\"><strong>GDPR<\/strong><\/a>), cela pourrait avoir des cons&eacute;quences importantes.<\/p><p>Donc, en r&eacute;sum&eacute; : soyez prudent avec les redirections PHP, utilisez-les correctement et ne les utilisez que lorsque vous en avez absolument besoin.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Une redirection PHP est un outil incroyablement utile, mais aussi dangereux en cas de mauvaise impl&eacute;mentation. Si vous avez lu notre introduction &agrave; PHP 7.4 et notre guide sur la fa&ccedil;on de cr&eacute;er un site web en 5 minutes, vous savez que la fonction header() peut &ecirc;tre utilis&eacute;e pour rediriger facilement un utilisateur vers une [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/fr\/tutoriels\/redirection-php\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":142,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"Comment faire une redirection PHP - En toute s\u00e9curit\u00e9 !","rank_math_description":"Si une redirection PHP peut \u00eatre un outil puissant \u00e0 votre disposition, il est n\u00e9cessaire de conna\u00eetre les risques encourus et de les \u00e9viter.","rank_math_focus_keyword":"redirection php","footnotes":""},"categories":[4809],"tags":[5636,5638,5637,5635],"class_list":["post-7765","post","type-post","status-publish","format-standard","hentry","category-php","tag-faire-une-redirection-en-php","tag-header-php","tag-php-redirection-automatique","tag-redirection-php"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/php-redirect","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/redirecionamento-php","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/redirection-php","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/redireccionar-php","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/cara-membuat-redirect-php","default":0},{"locale":"nl-NL","link":"https:\/\/www.hostinger.com\/nl\/tutorials\/php-redirect","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/php-redirect","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/php-redirect","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/php-redirect","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/redireccionar-php","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/redireccionar-php","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/redireccionar-php","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/redirecionamento-php","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/php-redirect","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/php-redirect","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/php-redirect","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/php-redirect","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts\/7765","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/users\/142"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/comments?post=7765"}],"version-history":[{"count":9,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts\/7765\/revisions"}],"predecessor-version":[{"id":38730,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts\/7765\/revisions\/38730"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/media?parent=7765"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/categories?post=7765"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/tags?post=7765"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}