{"id":18457,"date":"2020-05-07T15:04:08","date_gmt":"2020-05-07T18:04:08","guid":{"rendered":"https:\/\/blog.hostinger.io\/br-tutoriais\/?p=18457"},"modified":"2024-12-17T11:53:31","modified_gmt":"2024-12-17T14:53:31","slug":"redirecionamento-php","status":"publish","type":"post","link":"\/br\/tutoriais\/redirecionamento-php","title":{"rendered":"Como fazer um redirecionamento PHP (com seguran\u00e7a)"},"content":{"rendered":"<p>Um Redirecionamentos PHP &eacute; uma ferramenta incrivelmente &uacute;til, mas que tamb&eacute;m pode ser perigoso se n&atilde;o for implementado do jeito certo.<\/p><p>Se voc&ecirc; j&aacute; passou pela nossa <a href=\"https:\/\/www.hostinger.com\/br\/tutoriais\/php-7-4\/\"><strong>introdu&ccedil;&atilde;o ao PHP 7.4<\/strong><\/a> e nosso guia de <a href=\"https:\/\/www.hostinger.com\/br\/tutoriais\/como-criar-um-site-passo-a-passo\/\"><strong>como criar um site<\/strong><\/a>, j&aacute; est&aacute; ciente que a fun&ccedil;&atilde;o <strong>header()<\/strong> pode ser usada para redirecionar facilmente um usu&aacute;rio de uma p&aacute;gina para outra.<\/p><p>Na verdade, por&eacute;m, usar essa fun&ccedil;&atilde;o n&atilde;o &eacute; t&atilde;o simples quanto parece. Neste guia, vamos mostrar como fazer um redirecionamento PHP que n&atilde;o cause problemas no futuro.<\/p><figure class=\"wp-block-image size-large\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/Speed-Up-Your-Website-BR.pdf\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" width=\"1024\" height=\"283\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/public\" alt=\"\" class=\"wp-image-30339\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2022\/12\/eBook_-Speed-Up-your-website-BR.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-o-metodo-basico-para-fazer-um-redirecionamento-php\"><strong>O M&eacute;todo B&aacute;sico Para Fazer Um Redirecionamento PHP<\/strong><\/h2><p>A maioria dos guias lhe dir&aacute; que, para fazer um redirecionamento PHP, voc&ecirc; pode simplesmente usar a fun&ccedil;&atilde;o <strong>header() <\/strong>na parte superior das suas p&aacute;ginas. Para fazer isso, voc&ecirc; usa a fun&ccedil;&atilde;o para enviar uma nova URL, assim:&nbsp;<\/p><pre class=\"wp-block-preformatted\">header('Location: '.$newURL.php);<\/pre><p>Essa fun&ccedil;&atilde;o de cabe&ccedil;alho deve ser colocada antes de voc&ecirc; passar qualquer HTML ou texto para os navegadores dos usu&aacute;rios. Por isso, deve estar no topo da p&aacute;gina. Isso significa que ele deve vir antes da declara&ccedil;&atilde;o <strong>&lt;!DOCTYPE&gt;<\/strong>, antes de qualquer c&oacute;digo Java e PHP. Em seguida, ele envia os usu&aacute;rios para a nova URL.&nbsp;<\/p><p>Embora possa parecer simples, quando se trata da fun&ccedil;&atilde;o <strong>header()<\/strong>, a simplicidade do c&oacute;digo pode causar uma falsa sensa&ccedil;&atilde;o de seguran&ccedil;a. Ent&atilde;o, vamos ver como voc&ecirc; pode usar essa fun&ccedil;&atilde;o corretamente.<\/p><h3 class=\"wp-block-heading\" id=\"h-die-e-exit\"><strong>Die() e Exit ()<\/strong><\/h3><p>Primeiro, voc&ecirc; deve usar os modificadores <strong>die()<\/strong> ou <strong>exit()<\/strong> toda vez que usar um redirecionamento. Em resumo, o problema &eacute; que os rastreadores e rob&ocirc;s podem ignorar os cabe&ccedil;alho e, ent&atilde;o, a p&aacute;gina que voc&ecirc; estava redirecionando &eacute; totalmente acess&iacute;vel a eles.<\/p><p>Se, em outras palavras, voc&ecirc; est&aacute; usando um redirecionamento de cabe&ccedil;alho para proteger uma p&aacute;gina em particular, ela n&atilde;o oferece prote&ccedil;&atilde;o nenhuma.<\/p><p>&Eacute; por isso que voc&ecirc; precisa desligar o redirecionamento se ele for ignorado. A maneira de fazer isso &eacute; anexar <strong>die()<\/strong> ou <strong>exit()<\/strong> ap&oacute;s o seu redirecionamento:<\/p><pre>header(\"Location: .$newURL.php\");<br><br>die();<\/pre><h3 class=\"wp-block-heading\" id=\"h-urls-relativas-e-absolutas-nbsp\"><strong>URLs Relativas e Absolutas&nbsp;<\/strong><\/h3><p>Em seguida, vamos falar sobre URLs relativas e absolutas nos redirecionamentos. O <a href=\"https:\/\/greenbytes.de\/tech\/webdav\/rfc7231.html#header.location\" target=\"_blank\" rel=\"noopener\"><strong>RFC 7231<\/strong><\/a> permite usar os dois, mas voc&ecirc; deve ser extremamente cuidadoso ao usar redirecionamentos relativos. Isso acontece porque alguns criadores de sites coletam e renomeiam p&aacute;ginas PHP.<\/p><p>Isso significa que, se voc&ecirc; estiver trabalhando no seu PHP por meio de um criador de sites, poder&aacute; acabar quebrando todos os seus redirecionamentos<\/p><p>Infelizmente, no momento n&atilde;o h&aacute; uma maneira real de contornar esse problema, al&eacute;m de ser cuidadoso sobre onde seus redirecionamentos est&atilde;o apontando.<\/p><h3 class=\"wp-block-heading\" id=\"h-codigos-de-statis\"><strong>C&oacute;digos de Statis<\/strong><\/h3><p>O terceiro problema com os redirecionamentos padr&atilde;o do PHP &eacute; que o operador &ldquo;local&rdquo; do PHP ainda retorna o c&oacute;digo <a href=\"https:\/\/en.wikipedia.org\/wiki\/HTTP_302\" target=\"_blank\" rel=\"noopener\"><strong>HTTP 302<\/strong><\/a> .<\/p><p>Voc&ecirc; n&atilde;o deve aceitar isso, porque muitos navegadores da web implementam esse c&oacute;digo de maneira totalmente contr&aacute;ria &agrave; maneira como ele deve funcionar: eles essencialmente usam o comando GET em vez de executar um redirecionamento &ldquo;real&rdquo;.<\/p><p>A melhor pr&aacute;tica ao criar redirecionamentos PHP &eacute;, portanto, especificar o c&oacute;digo que &eacute; retornado. Infelizmente, o c&oacute;digo correto a ser usado &eacute; um ponto de disc&oacute;rdia.<\/p><p>O HTTP 301 indica um redirecionamento permanente, o que pode causar problemas ao restaurar sua p&aacute;gina original. Infelizmente, o HTTP 303 &eacute; entendido como &ldquo;outro&rdquo; por muitos navegadores e pode causar problemas com a indexa&ccedil;&atilde;o da sua p&aacute;gina pelos mecanismos de pesquisa.<\/p><p>Na pr&aacute;tica, e at&eacute; que tudo seja resolvido, use HTTP 303.<\/p><h3 class=\"wp-block-heading\" id=\"h-verifique-a-documentcao-nbsp\"><strong>Verifique a Document&ccedil;&atilde;o&nbsp;<\/strong><\/h3><p>Al&eacute;m de tomar as precau&ccedil;&otilde;es b&aacute;sicas acima, reserve um tempo para ler a documenta&ccedil;&atilde;o sobre o uso de redirecionamentos PHP antes de public&aacute;-los.<\/p><p>Voc&ecirc; deve ler o <a href=\"http:\/\/www.php.net\/manual\/en\/function.header.php\" target=\"_blank\" rel=\"noopener\"><strong>manual do PHP<\/strong><\/a> para garantir que entende o que est&aacute; fazendo, al&eacute;m de verificar a <a href=\"http:\/\/www.w3.org\/Protocols\/rfc2616\/rfc2616-sec14.html#sec14.30\" target=\"_blank\" rel=\"noopener\"><strong>documenta&ccedil;&atilde;o do W3C<\/strong><\/a> para garantir que est&aacute; seguindo as melhores pr&aacute;ticas.<\/p><p>E enquanto voc&ecirc; est&aacute; fazendo suas leituras, lembre-se de proteger tamb&eacute;m o site contra <a href=\"https:\/\/privacycanada.net\/network-vulnerabilities\/\" target=\"_blank\" rel=\"noopener\"><strong>vulnerabilidades comuns<\/strong><\/a>: se voc&ecirc; j&aacute; est&aacute; em fase de ter que usar redirecionamentos PHP, &eacute; prov&aacute;vel que a seguran&ccedil;a do site precise de uma auditoria.<\/p><h3 class=\"wp-block-heading\" id=\"h-outros-metodos-nbsp\"><strong>Outros M&eacute;todos&nbsp;<\/strong><\/h3><p>Considerando todos esses problemas, voc&ecirc; provavelmente est&aacute; se perguntando por que usaria um redirecionamento PHP.<\/p><p>Embora os redirecionamentos PHP normalmente sejam executados mais rapidamente do que outros tipos de redirecionamento e possam, portanto, ser uma ferramenta importante para melhorar a velocidade do site, existem outras op&ccedil;&otilde;es dispon&iacute;veis.<\/p><p>Existem duas abordagens principais para fazer isso. Voc&ecirc; pode usar o elemento HTML &lt;<strong>meta<\/strong>&gt; para redirecionar de dentro da parte HTML da sua p&aacute;gina ou usar JavaScript. A primeira abordagem &ndash; usando &lt;<strong>meta<\/strong>&gt; ficaria assim:<\/p><pre class=\"wp-block-preformatted\">&lt;meta http-equiv=\"refresh\" content=\"0;url=newpage.php\"&gt;<\/pre><p>A segunda abordagem &ndash; usando JavaScript &ndash; &eacute; um pouco mais elegante e certamente parece mais profissional:<\/p><pre class=\"wp-block-preformatted\">window.location.replace(\"http:\/\/newpage.php\/\");<\/pre><p>Ambas as abordagens ser&atilde;o executadas um pouco mais lentamente que o redirecionamento imediato do <strong>header<\/strong>(), mas s&atilde;o sem d&uacute;vida mais flex&iacute;veis.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/br\/\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-32927\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-palavra-final\"><strong>Palavra Final<\/strong><\/h2><p>Embora seguir as etapas acima signifique que os redirecionamentos do PHP sejam executados com seguran&ccedil;a, se voc&ecirc; estiver na posi&ccedil;&atilde;o de usar v&aacute;rios redirecionamentos do PHP, provavelmente &eacute; hora de repensar a estrutura do seu site.<\/p><p>Existem algumas boas raz&otilde;es para fazer isso. A primeira &eacute; que nem todos os <a href=\"https:\/\/wpmayor.com\/the-murky-waters-of-free-web-hosting\/\" target=\"_blank\" rel=\"noopener\"><strong>hosts da web s&atilde;o criados da mesma forma<\/strong><\/a> e, se voc&ecirc; estiver enviando todos os visitantes em uma rota tortuosa pelo site, isso afetar&aacute; o desempenho.<\/p><p>Isso pode ser aprimorado at&eacute; certo ponto, usando um <a href=\"https:\/\/www.melhoreshospedagem.com\/\" target=\"_blank\" rel=\"noopener\"><strong>provedor de hospedagem acess&iacute;vel<\/strong><\/a>, mas apenas at&eacute; certo ponto.<\/p><p>O segundo motivo &eacute; que a p&aacute;gina da qual voc&ecirc; est&aacute; redirecionando pode estar coletando dados sobre seus visitantes sem que voc&ecirc; esteja ciente disso, principalmente se voc&ecirc; estiver usando um software de an&aacute;lise da web para rastrear o desempenho do seu site. No nosso <a href=\"https:\/\/www.hostinger.com\/br\/tutoriais\/lei-de-protecao-de-dados-pessoais-no-wordpress-gdpr-guia-completo\/\"><strong>mundo p&oacute;s-LGPD<\/strong><\/a>, isso pode ter consequ&ecirc;ncias significativas.<\/p><p>Portanto, em resumo: tenha cuidado com os redirecionamentos do PHP, use de forma adequada e use somente onde e quando for absolutamente necess&aacute;rio.<\/p><p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Um Redirecionamentos PHP &eacute; uma ferramenta incrivelmente &uacute;til, mas que tamb&eacute;m pode ser perigoso se n&atilde;o for implementado do jeito certo. Se voc&ecirc; j&aacute; passou pela nossa introdu&ccedil;&atilde;o ao PHP 7.4 e nosso guia de como criar um site, j&aacute; est&aacute; ciente que a fun&ccedil;&atilde;o header() pode ser usada para redirecionar facilmente um usu&aacute;rio de [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/br\/tutoriais\/redirecionamento-php\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":78,"featured_media":18459,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"Redirecionamento PHP pode ser uma ferramenta poderosa, mas tamb\u00e9m perigosa. Saiba tudo sobre o assunto e evite problemas no seu site.","rank_math_focus_keyword":"redirecionamento php","footnotes":""},"categories":[4916],"tags":[7156,7155],"class_list":["post-18457","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","tag-redirecionamento-com-php","tag-redirecionamento-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-UK","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}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/18457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/users\/78"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/comments?post=18457"}],"version-history":[{"count":11,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/18457\/revisions"}],"predecessor-version":[{"id":47391,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/18457\/revisions\/47391"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media\/18459"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media?parent=18457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/categories?post=18457"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/tags?post=18457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}