Jump to content
MarcDu

Como eu redireciono uma url amigável?

Recommended Posts

Olá,

Eu de novo com uma duvida sobre url´s

Eu tenho a seguinte url:

 

https://www.apopular.com.br/product_info.php?cPath=26&products_id=42

 

Ela amigável fica assim:

 

https://www.apopular.com.br/capa-para-cobrir-colchao-capa-hospitalar-para-colchao-de-solteiro-todas-as-medidas-p-42

 

Eu mudei a url para:

 

https://www.apopular.com.br/capa-para-cobrir-colchao-capa-hospitalar-para-colchao-de-solteiro-todas-as-medidas/produto/42

 

Só que se eu deixar como a que mudei eu perco a indexação do google, todas as urls dão 404, não encontradas, como eu redireciono todas as urls para a nova usando htaccess?

Antecipadamente agradeço, boa tarde a todos

 

Atenciosamente,

Marcelo Eduardo

Share this post


Link to post
Share on other sites

Minha solução,

 

O que eu fiz:

No htaccess eu adicionei a linha

 

Original:

RewriteRule ^(.*)-p-(.*)$ product_info.php?products_id=$2&%{QUERY_STRING}
 

Alterada::

RewriteRule ^(.*)-p-(.*)$ product_info.php?products_id=$2&%{QUERY_STRING}
RewriteRule ^(.*)/produto-(.*)$ product_info.php?products_id=$2&%{QUERY_STRING}

 

no arquivo php eu só substitui o -p- po /produto-

 

Quando eu acho um link da loja no google

 

https://www.google.com.br/search?client=firefox-b-ab&dcr=0&ei=LMVMWpfRBsaLwgT93K6wDg&q=espuma+para+sofa&oq=espuma&gs_l=psy-ab.1.1.0i67k1j0i131i67k1j0i67k1l3j0j0i67k1l2j0j0i67k1.10342.16414.0.19356.21.12.7.2.2.0.187.1872.0j12.12.0....0...1c.1.64.psy-ab..0.21.2056...0i131k1.0.lDWKz9cngAs

 

Ele não dá página 404 ele da a url:

 

https://www.apopular.com.br/espumas-espuma-estofados-assento-ou-encosto-ou-sofa-de-pallet-60x60x10-cm-d33-p-810

A url antiga, mais quando eu clico em qualquer outro link ele transforma em

 

https://www.apopular.com.br/corvin-e-courissimo-courissimo-cinza/produto-231

 

que é o meu objetivo.

 

MINHAS DUVIDAS:

Eu estou duplicando as urls para o buscador?

Existe um jeito certo de fazer o que eu quero, indo direto para a url final?

 

 

Muito obrigado

 

 

Share this post


Link to post
Share on other sites

O ideal é fazer um redirecionamento 301, porque isso diz aos robôs de busca que eles precisam passar toda relevância daquela página antiga para a página atual. 
Se você não faz isso, é como se você começasse do zero, com páginas totalmente sem relevância junto ao Google.

 

Aqui alguns tutorias de como fazer isso:

Redirect 301

Redirect 301

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Ygor Guedes
      Boa tarde pessoal!
       
      Criei meu .htaccess no meu servidor, xampp (wampp) para desenvolver umas páginas e bati cabeça em uma situação; não queira que ninguém acessasse minhas páginas com extensão .php e não queria que meu diretório ficasse visível também. Segue abaixo:
       
      RewriteEngine On
       
      #Reescreve URLs
      RewriteCond %{REQUEST_FILENAME} -f
       
      #Era pra remover a extenção .php das páginas
      RewriteRule ^(.*)$ $1.php [L]
      RewriteCond %{REQUEST_FILENAME} !-d
       
      #Não permite a listagem de diretórios
      Options -Indexes
       
      O que está acontecendo:
      1. Se eu acesso minha página principal de login (login.php) sem a extensão até funciona porém ele não retira a extensão sozinha, de forma automática, ou seja, eu tenho que apagar a extensão, senão não funciona.
      2. Se eu criar uma condição: RewriteRule . erro404.php [L] (que serve para direcionar para esta página caso não encontre uma página existente), a condição RewriteRule ^(.*)$ $1.php [L] deixa de funcionar.
       
      Se puderem me ajudar, agradeço.
       
    • By Gildvan Arley
      Olá a todos
      estou criando uma área do usuário onde vai ser listados os kits do servidor de jogos que eu tenho em sua área.
      quando o kit acaba vai aparecer o botão de pagamento pra ele e nessa hora cada kit vai ter seu valor, estou com problema na parte de link do pagamento
      gostaria de saber qual o formato devo usar varchar ? no tipo la no BD e como posso pegar esse link la do banco de dados? 
      testei uns formas aqui e nada deu certo.
       
      cada kit tem seu valor, ai eu quero colocar o link de pagamento, pra quando o kit for removido aparecer o botão de pagamento pra ele, os botões já estão dando certo, só estou com problema pra pegar
      o link de cada kit. os valores de cada kit já estão criados no mercado pago
      <?php $data = date("Y/m/d"); $fimVip = $exibir_pag["fimvip"]; $dataPag = $exibir_pag["data"]; $mercadoP = $exibir_vip["mercadopago"];//A URL do mercado pago que esta no banco de dados if ($dataPag == NULL || strtotime($fimVip) < strtotime($data)){?> <table class="table"> <thead> <tr><span class="list-group-item text-left"><strong>Formas de pagamentos</strong></span></h5></tr> <tr> <th><a target="_blank" href="<?php echo $mercadoP;?>"><span class="label label-info">M. Pago</span></a></th> <th><a target="_blank" href="#"><span class="label label-success">PicPay</span></a></th> <th><a target="_blank" href="#"><span class="label label-info">Paypal</span></a></th> </tr> </thead> </table> <?php } else { echo ''; } ?> Imagem do painel
      do BD
       
    • By landerbadi
      Olá galera.
       
      Existe algum meio no php de passar uma variável pela URL sem informar o nome do arquivo .php?
       
      Por exemplo:
       
      No link http://localhost/index.php?id=123 existe alguma maneira de fazer isso sem informar o nome do arquivo index.php?
    • By landerbadi
      Olá galera. Estou com uma dúvida aqui e vou tentar ser o mais objetivo possível.
       
      Tenho uma váriável $texto com o valor Alguém viu minha maçã?
       
       
      Eu preciso transformar essa variável em um formato de URL. Ou seja, remover do texto os acentos, espaços, sinais de pontuação, etc. Ficando algo assim: alguem_viu_minha_maca (formato URL compatível com a barra de endereço do navegador).
       
      Alguém sabe como fazer isso?
    • By goio
      Pessoal, estou com dificuldades com essa URL amigável, oque pretendo é o seguinte:
          No array $pages são as páginas permitidas, contato.php e teste.php
          Até ai tudo bem chama as páginas certas, se não existir os arquivos mostra a mensagem que a página não existe.
               http://localhost/contato
          Agora estou com dificuldades de fazer essa verificação pelo banco de dados, se baseando pelo slug da minha tabela
              http://localhost/produtos/tenis-azul
              Apenas exibe a mensagem de que a página não existe.
       
      Como poderia resolver esse problema? se precisar posto a class CRUD

          
      <?php class URL extends CRUD     {         private $selectTable;         private $listResult;         private function setURL()         {             $pages = array ( "fazer-pedido", "contato", "page-teste" );             $categorias = array ( "sapato", "tenis" );             if ( isset ( $_GET['url'] ) ) :                 $url = addslashes ( $_GET['url'] );                 $sepURL = explode ( "/", $url );             endif;             if ( isset( $sepURL[1] ) ) :                 $this->selectTable = $this->selectTable( "COUNT(slug) AS slug", "tabela", "LIMIT 1", array () );                 $count = $this->selectTable->rowCount();                 foreach ( $this->selectTable as $this->listResult ) :                                          if ( $sepURL[1] === $this->listResult['slug'] ) :                         require DIR_FILES."slug".EXT;                     else :                         echo "Essa página não existe, Verificação: ".$sepURL[1];                     endif;                 endforeach;             elseif ( isset( $sepURL[0] ) && in_array ( $sepURL[0], $pages ) ) :                 if ( file_exists ( DIR_FILES.$sepURL[0].EXT ) ) :                     require DIR_FILES.$sepURL[0].EXT;                 else :                     echo "Essa página não existe";                 endif;             elseif ( isset( $sepURL[0] ) && in_array ( $sepURL[0], $categorias ) ) :                 require DIR_FILES."categorias".EXT;             else :                 require DIR_FILES."home".EXT;             endif;         }         public function getURL()         {             return $this->setURL();         }     }  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.