Vídeo Aula – Apache Mod_Rewrite Avançado

Pessoal, como prometido estou adicionando a vídeo aula sobre Apache Mod_Rewrite que eu fiz para dar continuidade ao Artigo Expressões Regulares com PHP e Python. É muito importante a leitura desse artigo antes de assistir o vídeo tutorial para não ficar muito perdido.

O Vídeo Tutorial aborda de uma maneira diferente o apache mod_rewrite que conhecemos hoje, mostrando que não é apenas para fazer URL Amigáveis (Friendly URL) sendo que existe uma gama de aplicações distintas que podem ser feitas.

Essa vídeo aula não é um (how-to) de como fazer URL Amigáveis e sim uma explicação por completo de tudo que é possível fazer utilizando o arquivo .htaccess.

Arquivo .htaccess

Enviem suas dúvidas,
Espero que gostem e não esqueçam de comentar.




 
 
 

16 Respostas para “Vídeo Aula – Apache Mod_Rewrite Avançado”

  1. Giovane 22.08.2009 as 20:59
    Firefox 3.5.2Windows Vista


    Fico muito bom. da pra entender….bem explicado…

  2. Twitter Trackbacks for Vídeo Aula - Apache Mod_Rewrite Avançado | Rafael Capucho [rafaelcapucho.com] on Topsy.com 24.08.2009 as 09:01
    Unknown


    [...] First Tweet 2 days ago rafaelcapucho Rafael Capucho http://blog.rafaelcapucho.com/expressoes-regulares/video-aula-apache-mod_rewrite-avancado.html view retweet [...]

  3. Alexandre Broggio 24.08.2009 as 09:45
    Firefox 3.5.2Windows XP


    Muito bem feita as video aulas, conheci seu blog pelo video aulas brasil, volto sempre vlw

  4. Flavio Raffaelli 26.08.2009 as 07:06
    Firefox 3.5.2Windows 7


    Caro Rafael

    Excelente sua vídeo aula, estava querendo realmente aprender essa parte e com sua aula ficou muito mais fácil de entender. Parabéns !!! Já tinha assistido outras vídeo aulas mas nenhuma tão clara e objetiva e com exemplos como vc fez. Nota 10 !!!
    Tb cheguei ao seu site pelo vídeo aulas brasil de meu amigo Felipe Cardozo.

    Abs
    Flavio Raffaelli

  5. Kátia Nakamura 26.08.2009 as 23:15
    Internet Explorer 7.0Windows Vista


    Rafa!

    Adorei o site… Ainda não tinha visto, vc acredita?!
    Parabéns pelo grande trabalho q tem feito viu!=)
    Ainda não vi todas as vídeo aulas… Mas prometo q verei todas!

    Parabéns mais uma vez!

  6. Expressões Regulares com PHP e Python na prática | Rafael Capucho 27.08.2009 as 02:44
    WordPress 2.8.4


    [...] Antes de me aprofundar nesse assunto com vocês, é necessário ter uma boa base em expressões regulares para podermos personalizar da maneira que desejarmos nossas URLs. Edit Atualização: A vídeo aula sobre apache mod_rewrite já foi publicada e pode ser assistida clicando no link: Vídeo Aula – Apache Mod_Rewrite Avançado [...]

  7. Willian 14.09.2009 as 10:51
    Firefox 3.5.2GNU/Linux


    Bom dia amigo, tudo bem?
    Cara, sinceramente! Excelente vídeo aula! Finalmente consegui entender como criar URL’s amigáveis. E olha que eu tentei muito aprender isso… Tomei nota de tudo!
    Continue com esse material de qualidade! Parabéns.
    Só uma dica: a música de fundo atrapalha :)
    Obrigado, um abraço.

  8. Magalhães 15.09.2009 as 10:12
    Firefox 3.5.2GNU/Linux


    Não entendi as rewrite cond. Não entendi pq verificar essas coisas (diretórios e arquivos).

  9. Rafael Capucho 15.09.2009 as 13:09
    Firefox 3.0.14Windows XP


    Magalhães,

    Usar as condicionais para chegar se é arquivo ou diretório serve para checar se o que esta escrito posteriormente a barra é um arquivo ou diretório, caso existe um arquivo ou diretório você consegue acessá-lo e caso contrário a condicional será falsa e você poderá trabalhar com esses valores, vou tentar de dar um exemplo mais prático, ao digitar /wp-admin as condicionais verificam se esse arquivo ou diretório existe, assim, se existir você poderá acessá-lo, caso contrário você irá passar wp-admin para as rewrite_rule compreendeu?

    se você não usar essas condicionais você não consegue adicionar folhas de estilo ou arquivos de script JS em uma pagina HTML porque não irá encontrar o endereço físico.

    Abraços.

  10. REnato 28.09.2009 as 14:57
    Internet Explorer 7.0Windows XP


    Muito bom o vídeo.
    Eu queria saber como fazer para criar subdominios…

    Tipo:

    http://produto.meusite.com.br fosse o mesmo que meusite.com.br/produto.php

    Renato

  11. Rafael Capucho 30.09.2009 as 01:42
    Firefox 3.0.14Ubuntu 9.04


    Olá Renato,

    bom, é um procedimento simples,

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^produto\.seusite\.com\.br [NC]
    RewriteRule (.*) http://www.seusite.com.br/produto.php?=$1 [L]

    talvez seja o caso de usar uma Query String Append [QSA] também, depende da implementação.

    Abraços!

    Obs: Não testei o código mas é basicamente isso.

  12. Paulo Rocha 3.12.2009 as 11:19
    Firefox 3.5.5Windows XP


    Muito bom conhecer um site como o seu que realmente ‘acrescenta’ muito na nossa vida profissional! Já assisti video-aulas, li artigos e vou ver muitas coisas ainda (com certeza!).

    Tenho uma dúvida (depois de assistir a video-aula so o re-write do Apache):

    Quero re-direcionar as imagens para a pasta ‘/img/*.ext’ sem que seja preciso especificar a pasta. Então, “http://meusite.com/figura.jpg” seria re-direcionado para “http://meusite.com/img/figura.jpg” – todas as outras “coisas” vao para o ‘index.php’ do site.

    Pensei em algo como:

    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond $1 !^(index\.php|img|css|js|jpg|robots\.txt)

    RewriteRule ^(.*)$ index.php/$1 [L]

    RewriteRule ^(.*)\.jpg$ /img/$1\.jpg

    Sendo necessário repetir a última linha para imagens ‘png’ e ‘gif’ (penso em fazer a mesma coisa com os arquivos ‘css’ e ‘js’, mas isso é para o futuro – ou pedir demais :P )

    Só que….. não funciona!!!

    Você pode me ajudar??

    Meu e-mail (se precisar – e para divulgar!): prb_rocha@yahoo.com.br
    Meu site: http://www.smvc.tk ou http://www.paulorocha.net76.net

    Obrigado!!

  13. Rafael Capucho 3.12.2009 as 12:47
    Firefox 3.0.14Ubuntu 9.04


    Veja Paulo,

    Primeiramente obrigado pelo elogio que fez ao conteúdo, espero poder ajudar sempre..

    Sobre a questão, É um pouco mais simples do que o que você tentou fazer…

    Essa linha que você escreveu:
    RewriteCond $1 !^(index\.php|img|css|js|jpg|robots\.txt)

    não faz menor sentido já que $1 não tem valor algum..

    Na verdade você não precisaria usar nenhuma condicional, porque esse tipo de padrão pode casar diretamente, da seguinte maneira:

    RewriteRule (.+)\.jpg img/$1.jpg [L]

    Porém, se quiser criar uma condicional, pode tentar algo do tipo:

    RewriteCond %{REQUEST_FILENAME} ^(.+)\.jpg$

    mas é dispensável..

    Até mais, Obrigado!

  14. bruno 3.01.2010 as 21:27
    Firefox 3.5.6Windows 7


    Parabéns pela video aula.

    Mas eu estou com uma dúvida

    Quando vc fala sobre o redirecionamento, eu escrevi a seguinte linha como na video aula e baixe o aquivo para conferir.

    RewriteEngine On
    RewriteRule ^velho\.html /novo.html [R=301,L]

    eu tenho os dois arquivos criados de fato mas, o comportamento está não está sendo o mesmo.

    ao digitar na url:

    http://localhost/urlAmigaveis/velho.html

    invés de ir para

    http://localhost/urlAmigaveis/novo.html

    ele esta me levando para:

    http://localhost/novo.html

    O que foi q eu fiz de errado? Ou que configuração e posso ter errado ?

  15. bruno 4.01.2010 as 14:20
    Safari 4.0.4Windows 7


    Eu estou com dificuldade…
    eu fiz:

    RewriteEngine On
    RewriteRule ^velho\.html /novo.html [R=301,L]

    Ao invés de ir para

    http://localhost/urlAmigaveis/novo.html

    ele vai para

    http://localhost/novo.html

    o que há de errado?

  16. Rafael Capucho 16.02.2010 as 17:03
    Firefox 3.5.6Ubuntu 9.10


    Carissimo Bruno,

    Peço sua compreenção pela breve resposta, estou de férias sem um
    ambiente de desenvolvimento como servidores web para trabalhar melhor
    a sua resposta,

    Pelo que me parece o problema com o seu rewrite deve ser alguma barra /
    que esta fazendo o link não ser absoluto, teste:

    RewriteRule ^velho\.html novo.html [R=301,L]

    sem a barra antes de novo.html para testarmos,

    Obrigado desde já!