Nessa vídeo Aula aprenderemos a como criar uma URL Amigável utilizando o PHP. A Url Amigável ajudar o usuário a se localizar melhor, e melhorar o posicionamento em site de buscas. Espero que gostem, e boa aula.
Trabalhando URL Amigável com PHP

Desenvolvedor Web
Nessa vídeo Aula aprenderemos a como criar uma URL Amigável utilizando o PHP. A Url Amigável ajudar o usuário a se localizar melhor, e melhorar o posicionamento em site de buscas. Espero que gostem, e boa aula.
David,
como faço pra executar toda essa vídeo-aula, mas de forma online?
Teria que acessar o .htaccess do site de hospédagem e colocar aqueles códigos que você passou?
Mais alguma coisa?
Desde já, lhe agradeço
Vc teria q criar um arquivo .htaccess, e jogar na hospedagem. Caso já tenha na hospedagem, vc vai editá-lo
Prezado,
Tudo bem?
Nessa questão de URL amigável gostaria de esclarecer uma dúvida.
Como criar uma URL amigável do tipo http://www.ctasoftware.com.br/titulo-da-minha-noticia ?
Vários blogs e forum ensinam a seguinte maneira http://www.ctasoftware.com.br/noticia/1234, ou seja, notícia e id notícia, dessa maneira fica bastante estranho, acredito que a melhor maneira seja http://www.ctasoftware.com.br/titulo-da-minha-noticia alguma vez você já realizou isso? Teria algum script ou dica de como fazer?
Obrigado.
Everton, na verdade é da mesma maneira, a única diferença é que vai gravar uma parte da URL no banco de dados. Exemplo:
http://www.seusite.com.br/titulo-da-noticia
titulo-da-noticia => grava no banco de dados.
Então vc vai capturar essa parte da url, da mesma maneira q fizemos na vídeo aula, e irá realizar uma pesquisa no banco de dados, como ele fosse um ID. Um detalhe, é importante vc garantir q essa url seja unica, pra não dá problema
e como diferenciar ela de ser uma pagina e de uma pesquisa.
por exemplo:
seusite.com.br/contato, buscará a pagina contato
e seusite.com.br/titulo-da-noticia
buscará como pagina?
Aproveitando..;
se eu tiver um site com varias pastas,
www/-> home | produtos | contato,etc
www/blog-> inicio | postagem/12/12/2012
www/adm->
www/forum->
como deve ser o código php pra chamar as páginas?
@Rodrigo, dá uma olhada nesse outro tutorial meu, q pode te ajudar
https://www.davidchc.com.br/tutoriais/php-tutoriais/mais-sobre-url-amigavel-com-php/
Bom dia, David!
Primeiramente muito boa a video aula, consegui fazer tudo certinho como vc
mostrou. Só teve um pequeno problema q eu acho q vc com o seu vasto conhecimento
pode me ajudar. srsr
é o seguindo eu tenho uma pasta chamada “design” onde nela tem outras pastas
seguindo o modelo abaixo?
design->default->
ai dentro de default eu tenho as seguintes pastas:
->css
->img
->js
->paginashtml
bom quando eu estou na index.php meu codigo fonte seria esse
HOME
veja q eu chamo os arquivos da pasta design no cabeçalho, mais se eu entrar
com a segiunte url ex:
http://localhost/meusite/produtos/
por exemplo eu teria q ter o seguinte codigo fonte:
HOME
vc sabe por q isso está acontecendo e se isso é para acontecer?
ops desculpa o codigo ñ foi aqui as imagens
outra coisa se eu tivese
http://localhost/meusite/produtos/1/
eu teria q voltar mais um nivel das pastas conforme as imagens
http://imageshack.us/photo/my-images/11/codigo001.jpg/
http://imageshack.us/photo/my-images/269/codigo002.jpg/
Atanaildo, vc precisa coloca o caminho completo para o css, :
http://www.seusite.com.br/design/css/style.css
Boa tarde David!
Muito obg pela diva ssrrs em percebi isso antes de ler sua resposta mais muito obg msm pela atenção.
Olá como eu faço para colocar url amigável em estados tipo assim.
http://www.meusite.com/São paulo, ou seja a pessoa seleciona o estado em html e ele prínta o resultado certo.
Tenho que criar um banco de dados só de estado?
Agradeço se puder me ajudar.
Não entendi muito bem a duvida, vc quer uma forma de ao selecionar um item do select, ele enviar em formato de URL amigável, seria isso ?
Tipo assim ..
selecione o estado:
RJ – SP – PR Ao selecionar a url ficaria assim.
http://www.meusite.com/Rio de janeiro
Gostaria de sabrer como fazer isso funcionar já tentei de todo o jeito e não funciona.
Criei uma tabela só de estado e não da certo.
Primeira coisa é enviar essa informação já formatada, pq no formulário ele vai enviar tipo query string, então vc precisa trabalhar com javascript pra formatar o valor, exemplo:
[javascript]
jQuery("#estados").change(function(){
var estado = jQuery(this).val();
window.location = ‘seusite.com.br/’.estado;
return false;
});
[/javascript]
Lembrando q o valor pela URL tem q está formatado tbm, no caso as palavras sem espaços
Depois de passar a informação, precisamos agora analisar com trabalhar com esse valor.
Na videoaula informo que o primeiro parametro seria o arquivo, mas aqui temos uma exceção. Então o q vc pode fazer ?
Retornaria todos esses nome dos banco, ou manualmente, vai depender de vc, e colocaria no array, e faria uma condição: Se o primeiro parâmetro da URL for igual aos nomes q do estado, inclui um arquivo exclusivo. Exemplo
[php]
$cidade = array(‘rio-de-janeiro’, ‘sao-paulo’);
$atual = explode(‘/’, $_GET[‘pg’]);
if(in_array($atual[0], $cidade)){
$page = ‘cidades’;
$_GET[‘cidade’] = $atual[0];
}else{
/*Continua a logica*/
}
[/php]
Veja q faço a verificação e defino nome do arquivo q será incluido. Mas vc viu q crie uma variavel superglobal $_GET[‘cidade’],e atribui o nome do parametro a era, mas pq ? Se vc estiver trabalhando no banco de dados, e quiser realizar uma pesquisa pra buscar os dados da cidade passada para URL, assim fica mais facil pra vc recuperar em qualquer página
Eu gostaria de saber como faz isso dai com subdominio com WildCard % (*).
Exemplo desse site: http://ec.cx
Marlon, vc pode tentar fazer algo assim:
[php]
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(.*)\.seusite\.com\.br
RewriteRule ./index.php?var=%1 [L]
[/php]
Opa mais uma vez te pertubando rs
David no último exemplo que vc fez
RewriteRule ^(.*)\.html$ index.php?pg=$1
se na minha url nao tiver .html
http://www.teste/parametro/valor
da um erro
como eu posso tratar pelo htaccess para ele retornar
para a para pagina quando ele nao tiver a terminação .html
http://www.teste/parametro/valor.html
Eu tava reparando o baixaki se vc nao colocar .htm ele da erro 402.
No caso vc quer, se tiver com .html ou não, redirecione da mesma maneira. TEnte fazer assim:
RewriteRule ^(.*)\.html?$ index.php?pg=$1
Olá David. Sua vídeo aula foi a melhor de todas as que eu vi na internet sobre essa questão de url’s amigáveis.
Mas estou com um problema: No meu projeto eu tenho um menu de opções, quando eu clico por exemplo em noticias(localhost/projeto/noticias), é listada todas as noticias cadastradas tudo certinho. Mas quando clico em uma das noticias(localhost/projeto/postt/14), onde post=pagina que será incluida, e 14=id da noticia. Quando clico no link o site parce que duplica e carrega duas vezes um por cima do outro e a noticia não é exibida. Isso ocorre com todos os ‘sublinks’ do site! Espero que tenha me entendido! Aguado uma salvação!
Airton, dá uma olhada no complemento da videoaula que fiz sobre o assunto, talvez te ajude:
https://www.davidchc.com.br/tutoriais/php-tutoriais/mais-sobre-url-amigavel-com-php/
David obrigado pela video aula!
Fiquei com uma dúvida, no meu site esta tudo funcionando porém se o cliente colocar uma barra no final do endereço o site perde todo o CSS EX: http://www.meusite.com.br/home/ , tem como evitar este tipo de problema. Obrigado
É precisa que elementos externos, como imagens , css, javascript sejam chamados utilizando a URL Completa, assim evita esse problema.
David obrigado por mais esta ótima aula. Minha dúvida é: Como faço para evitar quando o cliente digita por ex: http://www.mwusite.com.br/produto/ neste caso o site perde todo o layout e css .Grato
Os arquivos externos, como imagem, css, preciso ser chamados utilizando URL Completa, assim evita esse problema.
Obrigado David, achei uma outra alternativa. Usar a tag Base no head.. Obrigado
Olá, como eu faço para o ficar amigável também?
Miike, mas o q vc quer q fique amigável?
David , tudo bom?
Tentei contato com você via e-mail mas sem sucesso.
David eu estou querendo que você faça um sistema para mim. está disponível?
Abraços!
Desculpa Juan, tive uns problemas com meu email. Não to podendo pegar freela atualmente, q tenho já projetos em andamento. abrs
Olá, tudo bem? Eu não estou conseguindo fazer! O arquivo htacces precisa ficar na raiz? Ele precisa de permissão? Eu uso o hoteldaweb como servidor. Pode me mandar esses exemplos do video?
At,
Ivan
Ivan, nem tenho mais esses arquivos. O .htaccess precisa está na pasta raiz do site. E não precisa de permissão. Verifique se hoteldaweb é necessário algo para habilitar o htaccess.
Boa tarde David,
Não entendo, eu tento fazer de tudo mas não consigo obter êxito, creio que seja algo simples, por exemplo, eu tenho uma index e nela fica a ‘estrutura’ simples do site com a variavel topico:
Tudo bem, tenho uma página ‘single.php’ que exibe as noticias dinamicas com o seguinte link:
http://localhost/arconservice/index.php?topicos=nav/single&topico=29
Neste caso, qual o caminho a seguir no htaccess e no php?
Sinto que é bem possível alterar isso, mas esta um nó na cabeça.
Aguardo sua resposta.
Abraço.
Felipe, dá uma olhada no tutorial q escrita a mais sobre esse assunto, talvez te ajude entender melhor como fazer:
https://www.davidchc.com.br/tutoriais/php-tutoriais/mais-sobre-url-amigavel-com-php/
Olá David,
Primeiramente, muito obrigado pela vídeo aula, me ajudou muito!
O sistema de url amigável funciona perfeitamente quanto ao back-end, mas tenho um “bug” com o front. Depois de estruturar a index via css, fui fazer as outras páginas, porém a index carrega “junto” com essas páginas, minha index fica abaixo do conteúdo da página de noticias por exemplo…
Não achei nada relacionado à isso, você sabe o que poderia ser?
Grato.
Wilson, provavelmente vc tá dando algum include a mais, ou chamou uma página duplicada.
Boa tarde cara poderia dar uma ajuda?
Após assistir a VA fiz tudo certinho, funcionou que foi uma beleza. O único problema é que tenho alguns links referentes as redes sociais que deveriam abrir em uma nova aba, mas está dando erro, não abre.
Estou colocando o lin assim: http://www.facebook.com/
Mas está abrindo assim: http://localhost/facebook.com/
Teria como dar uma ajuda?
Desde já obrigado pela atenção.
Provavelmente esses links, estão com //facebook.com, basta colocar http ou https, exemplo: https://facebook.com
Cara me desculpe, mas era problema de BIOS mesmo.
David, como ficaria a URL nas paginações?