Screencaster

Mostrando Conhecimento

mod_rewrite: A essência das URLs amigáveis, ou friendly URLs

Senhoras e senhores, apresento à vocês O Segredo!

Okay, estava brincando. Não estou falando do filme (ou livro, muito bom por sinal), mas sim do segredo das tão admiradas e famigeradas URLs amigáveis (friendly URLs).

Antes de mais nada, preciso informá-los de que existem inúmeras maneiras de se fazerem URLs amigáveis, mas a minha preferida (e a que eu acredito ser a mais adequada) é a que utiliza o mod_rewrite, no servidor Apache.

Seguindo com meu disclaimer pré-desembuchaissologo, também preciso avisar à todos de que, para que seja possível a utilização deste método, o mod_rewrite precisa estar habilitado no seu servidor. Se ele estiver em sua máquina, procure no httpd.conf a linha onde ele está declarado, e certifique-se de que a mesma não esteja comentada (se tiver um # no começo da linha, retire-o). Caso tenha modificado o arquivo, não se esqueça de salvar ele e reiniciar o servidor. Caso o seu servidor esteja na web, e seja compartilhado, é bem provável que ele já esteja com o mod_rewrite habilitado, caso não aí o negócio é um pouco mais complicado, mas uma boa conversa com o pessoal do host pode resolver o seu problema.

Ah! There’s one more thing! Para conseguir tirar o máximo proveito da técnica, é necessário um conhecimento no mínimo básico de expressões regulares, algo que todo bom programador deve tirar um tempinho para aprender.

Feito isso, podemos partir para a prática.

Peguemos uma situação hipotética, onde você tem um site institucional, que tem uma navegação baseada em includes php, a url para acessar a página de contato seria mais ou menos assim:

seusite.com.br/index.php?pagina=contato

Esta URL está um tanto feia. Não seria melhor da seguinte forma?

seusite.com.br/contato

Muito mais agradável, não?

Para fazer com que a URL funciona desta maneira, basta apenas criar um arquivo .htaccess (que permite que façamos configurações no Apache) dentro da pasta raíz do seu site, contento as seguintes informações:

RewriteEngine On
RewriteRule ^\/?([A-Za-z0-9]+)?\/?$ /index.php?pagina=$1

Okay, muito provavelmente quem não conhece expressões regulares não irá entender nada. Mas, de uma forma bem simples, na primeira linha estamos ativando o mod_rewrite para o local onde está o .htaccess, e na segunda estamos dizendo que qualquer caractere alfanumérico que estiver depois da barra no final do domínio, deverá retornar a url index.php?pagina=(o conteúdo alfanumérico encontrado).

Mas, e agora? E se eu tenho uma pasta dentro da raíz do site com os javascripts, outra com css, outra com imagens do portfólio, mais um arquivo que serve de include dentro do site, outro que retorna os ultimos posts do twitter, e por aí vai, e quero que estes arquivos sejam ignorados na hora de reescrever a url ?

Podemos adicionar uma simples condição, antes de definirmos a regra, deixando nosso .htaccess da seguinte forma:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^(index\.php|css|envia_contato\.php|portfolio\-images|twitter\.php|index\.html)
RewriteRule ^\/?([A-Za-z0-9]+)?\/?$ /index.php?pagina=$1 [L]

Como podem ver, não é nada de outro mundo, apenas dizemos quais as palavras que serão ignoradas, ficando dessa forma acessíveis normalmente como se o rewrite não estivesse alí.

Espero que este post tenha esclarecido algumas dúvidas de vocês a respeito de urls amigáveis e mod_rewrite. Qualquer dúvida que tenha ficado pode ser perguntada nos comentários do post, sem problemas :D

Novos screencasts e podcasts chegando em breve!

[]’s

Mais sobre isso na web...

Apenas um comentário » 11/08/2008 @ 12:08 Postado por inside

(Script) Igniter - “Time Saving” para criação de aplicações Code Igniter

Já faz cerca de um ano e meio desde que conheci e venho utilizando bastande o framework Code Igniter para criação de aplicações PHP baseadas em banco de dados.

Algo que sempre senti falta no Code Igniter foram os clássicos “generators”, bastante conhecidos dos programadores Ruby on Rails. Pensando nisso criei um script (pensando em mim, inicialmente, depois que decidi compartilhá-lo) para facilitar a criação de aplicações Code Igniter.

Na verdade são dois scripts: um chamado igniter e outro chamado igniter_generate. Eles são escritos em PHP e por enquanto só funcionam em plataformas unix-based (mac, linux…). Não deve ser muito difícil portar os scripts para Windows, mas eu não tenho nehum PC aqui no qual possa testar, então se alguém tiver conhecimentos em PHP e DOS e quiser modificar o script, sinta-se à vontade, ele é creative commons.

Fiz um vídeo curto só para mostrar como eles funcionam:

 
icon for podpress  Podcast Video [3:02m]: Play Now | Play in Popup | Download (287)

Só para observar: criei o script com intenções meramente pessoais (sim, eu sou egoísta), portanto não presto suporte de nenhum tipo, é apenas para ajudar a comunidade, usem como quiserem mas me deixem em paz! :D

Em breve postaremos aqui a primeira parte da nossa nova série. Quem não ganhou na nossa promoção não fique preocupado, a primeira parte será liberada para qualquer pessoa.

[]’s

Mais sobre isso na web...

5 comentários » 26/05/2008 @ 17:05 Postado por inside

CodeIgniter - ActiveRecord: Inserindo no banco de dados

No último screencast adicionamos comentários aos nossos posts, e nesta edição eu crio o formulário para que os usuários do blog possam postar seus próprios comentários, introduzindo a parte de inserção no banco de dados via Active Record.

icon for podpress  Vídeo 954x648 QuickTime [8:59m]: Download (158)

Espero que gostem. Qualquer dúvida/sugestão/comentário basta comentar.

Nossas novidades começam em breve, assim que estivermos prontos ;)

[]’s

Mais sobre isso na web...

5 comentários » 05/05/2008 @ 15:05 Postado por inside

CodeIgniter - ActiveRecord: Mais banco de dados

Seguindo nossos screencasts sobre CodeIgniter, vamos avançar um pouco na parte de banco de dados (ActiveRecord), selecionando dados mais específicos do banco através da cáusula where, começando a criar a parte de comentários do nosso sisteminha de blog.

 
icon for podpress  Vídeo 768x480 QuickTime [13:00m]: Play Now | Play in Popup | Download (334)

No começo do vídeo deixei também um “disclaimer” sobre nossos podscrasts em áudio e sobre nossa nova série que vem por aí.

Espero que gostem, até mais!

[]’s

PS: 13:00min de duração! o_O Vou lá no pai de santo e já volto :P

Mais sobre isso na web...

2 comentários » 25/04/2008 @ 23:04 Postado por inside

CodeIgniter - ActiveRecord: Acessando o banco de dados

Vamos seguir nossa série de tutoriais sobre o framework CodeIgniter. Antes de falar mais sobre este vídeo, gostaria de informá-los de que trata-se do primeiro screencast gravado especificamente para o screencaster.com.br :D

Nesta segunda parte eu introduzo o acesso ao banco de dados do CodeIgniter, começando a interagir com o MySql através da classe ActiveRecord.

 
icon for podpress  Podcast Video [13:30m]: Play Now | Play in Popup | Download (480)

Em breve iniciaremos nossa nova série, fiquem ligados. Ah! Também pretendo colocar versões em alta qualidade opcionais dos screencasts a partir dos próximos, para o pessoal que quiser um vídeo com mais qualidade ;)

Qualquer dúvida, comentário ou sugestão, basta comentar!

Até o próximo!

Webtutoriais:D45EE4E0

Mais sobre isso na web...

10 comentários » 13/04/2008 @ 00:04 Postado por inside

CodeIgniter - Princípios Básicos

Como prometido, neste blog iremos continuar as séries que estavam em andamento no Web2Ponto0, além de iniciar algumas novas. Para que o negócio não perca sentido, preciso republicar aqui as partes das séries, mesmo as que já haviam sido postadas anteriormente.

Então segue esta primeira parte sobre CodeIgniter. O vídeo pode parecer meio estranho, justamente por ter sido gravado para o Web2Ponto0. Os próximos da série já estarão de acordo com o novo blog.

Nesta primeira parte eu apresento os princípios básicos do framework, como o modo que ele gerencia as URLs e o modo como implementa controllers e views.

 
icon for podpress  Podcast Video [9:16m]: Play Now | Play in Popup | Download (282)

Qualquer dúvida ou sugestão, basta comentar!

Até o próximo!

Webtutoriais:5AA76279

Mais sobre isso na web...

4 comentários » 02/04/2008 @ 22:04 Postado por inside

Screencaster - Conteúdo publicado sob licença Creative Commons - Nós usamos Wordpress