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.
Enviem suas dúvidas,
Espero que gostem e não esqueçam de comentar.









Fico muito bom. da pra entender….bem explicado…
[...] First Tweet 2 days ago rafaelcapucho Rafael Capucho http://blog.rafaelcapucho.com/expressoes-regulares/video-aula-apache-mod_rewrite-avancado.html view retweet [...]
Muito bem feita as video aulas, conheci seu blog pelo video aulas brasil, volto sempre vlw
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
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!
[...] 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 [...]
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.
Não entendi as rewrite cond. Não entendi pq verificar essas coisas (diretórios e arquivos).
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.
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
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.
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
)
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!!
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!
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 ?
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?
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á!