Redirecionando rotas antigas com Apache e Nginx
by Ricardo Yasuda on February 22, 2010 22:04
Aqui na Bio Ritmo recentemente migramos o site da SmartFit de PHP para Rails
, e com isso muitas páginas que estavam indexadas pelo Google ficaram com endereços diferentes. Pensando no SEO, e para não perder as visitas por causa dessa migração, fizemos um redirecionamento permanente (301) com o Apache, usando .htaccess:
Redirect /atendimento.php http://www.smartfit.com.br/atendimento
Redirect /unidades.php http://www.smartfit.com.br/unidades
Redirect /franquias.php http://www.smartfit.com.br/franchises/new
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/a-smartfit.php$
RewriteCond %{QUERY_STRING} ^idUnidade=1$
RewriteRule ^.*$ http://www.smartfit.com.br/unidades/brasilia? [L,R=301]
RewriteCond %{REQUEST_URI} ^/a-smartfit.php$
RewriteCond %{QUERY_STRING} ^idUnidade=2$
RewriteRule ^.*$ http://www.smartfit.com.br/unidades/morumbi? [L,R=301]
RewriteCond %{REQUEST_URI} ^/a-smartfit.php$
RewriteCond %{QUERY_STRING} ^idUnidade=3$
RewriteRule ^.*$ http://www.smartfit.com.br/unidades/porto-alegre? [L,R=301]
RewriteCond %{REQUEST_URI} ^/a-smartfit.php$
RewriteCond %{QUERY_STRING} ^idUnidade=4$
RewriteRule ^.*$ http://www.smartfit.com.br/unidades/copacabana-i? [L,R=301]
RewriteCond %{REQUEST_URI} ^/a-smartfit.php$
RewriteCond %{QUERY_STRING} ^idUnidade=5$
RewriteRule ^.*$ http://www.smartfit.com.br/unidades/copacabana-ii? [L,R=301]
RewriteCond %{REQUEST_URI} ^/a-smartfit.php$
RewriteCond %{QUERY_STRING} ^idUnidade=6$
RewriteRule ^.*$ http://www.smartfit.com.br/unidades/botafogo? [L,R=301]
Repare que as páginas que tinham parâmetros dinâmicos foram um pouco mais trabalhosas, pois precisamos usar mod_rewrite.
Só que nesta semana migramos o servidor para Nginx, e após muita pesquisa e experimentação, cheguei na seguinte configuração:
location /atendimento.php {
rewrite /atendimento.php http://www.smartfit.com.br/atendimento permanent;
}
location /franquias.php {
rewrite /franquias.php http://www.smartfit.com.br/franchises/new permanent;
}
location /unidades.php {
rewrite /unidades.php http://www.smartfit.com.br/unidades permanent;
}
location /a-smartfit.php {
if ($args ~ idUnidade=1) {
rewrite ^ http://www.smartfit.com.br/unidades/brasilia? permanent;
}
if ($args ~ idUnidade=2) {
rewrite ^ http://www.smartfit.com.br/unidades/morumbi? permanent;
}
if ($args ~ idUnidade=3) {
rewrite ^ http://www.smartfit.com.br/unidades/porto-alegre? permanent;
}
if ($args ~ idUnidade=4) {
rewrite ^ http://www.smartfit.com.br/unidades/copacabana-i? permanent;
}
if ($args ~ idUnidade=5) {
rewrite ^ http://www.smartfit.com.br/unidades/copacabana-ii? permanent;
}
if ($args ~ idUnidade=6) {
rewrite ^ http://www.smartfit.com.br/unidades/botafogo? permanent;
}
}
Achei mais limpo que o Apache, funciona sem problemas, e sem perder page ranking.
Posted in SEO, Server | Tags apache, nginx, seo | Comments (1)
Últimos eventos
by Ricardo Yasuda on November 10, 2009 14:33
Olá, sei que tenho negligenciado um pouco este blog, mas muita coisa está acontecendo ultimamente, profissionalmente e pessoalmente, o que não vem ao caso comentar.
Estou trabalhando agora na Bio Ritmo, mais precisamente cuidando dos sistemas da SmartFit, na companhia de outros talentosos desenvolvedores Rails. Foi muito bom meu período na DBurns Design, e agradeço muito ao Marcio Trindade pela oportunidade.
Lógico que estive no último Rails Summit, mas ainda não tive tempo de escrever sobre tudo. O que eu já escrevi vocês podem conferir na InfoQ Brasil, é só ver meu conteúdo publicado.
Ainda sobre eventos, no dia 28/11/2009 acontece o primeiro Dev In Sampa, e pretendo ir, se conseguir uma vaga :)
Posted in Eventos, Rails | Tags bioritmo, smartfit, railssummit, rails, devinsampa | Comments (2)
6o Encontro do Guru-SP - Testes
by Ricardo Yasuda on September 25, 2009 16:08
O Guru-SP é o Grupo de Usuários Ruby de São Paulo, fundado no ano passado para discutir, promover eventos, e talvez futuramente elaborar um projeto, tudo relacionado a Ruby, e não necessariamente limitado a Rails.
Neste sábado (26/09/2009) acontecerá o 6o encontro do grupo. Faremos uma mesa de debates sobre um assunto que ainda nem todos dominam: testes. Fui gentilmente convidado para participar da mesa de debates, juntamente com Cássio Marques, Diego Carrion, Fabio Kung, Jorge Diz, Mauricio Aniche e Thiago Scalone.
O encontro acontecerá na Gonow que mais uma vez cederá suas dependências para um evento de Ruby, como no Rails Rumble.
Mais detalhes no RubyInside
Posted in Eventos, Rails, Ruby, Testes | Tags rails, ruby, tests, event, bdd, tdd, rspec, cucumber, shoulda, remarkable | Comments (0)
Rails Summit 2009
by Ricardo Yasuda on September 21, 2009 22:29
Seguindo o grande sucesso de 2008, que eu relatei no blog em 3 posts (Dia 1, Dia 2 e a Experiência Pessoal) teremos mais uma vez o Rails Summit Latin America, que será realizado nos dias 13 e 14 de outubro de 2009, no Auditório Elis Regina do Centro de Convenções do Anhembi.
O Rails Summit Latin America, para quem não conhece, é um conferência internacional de Ruby e Rails que reúne toda a comunidade brasileira e mais alguns desenvolvedores dos demais países da América Latina. É uma grande oportunidade para aprender e conhecer outros desenvolvedores, e por que não, conseguir um emprego na área.
Eu estarei presente, cobrindo o evento para a InfoQ Brasil, onde colaboro com traduções de notícias, entrevistas e artigos. A Fratech gentilmente cedeu cortesias através de sorteio aos seus editores e eu fui um dos vencedores. Agradeço a organização do Rails Summit e a Fratech por isso.
Este ano teremos palestras de nomes consagrados da comunidade Ruby/Rails nacional e internacional. Vejam a lista de palestrantes:
Palestrantes nacionais
- Arthur Zapparoli (Arthurgeek)
- Bruno Miranda
- Carlos Brando
- Carlos Villela
- Fabio Kung
- José Valim
- Leonardo Borges
- Marcos Tapajós
- Nando Vieira
- Vinícius Telles
Palestrantes internacionais
- Bryan Lyles (TATFT)
- Chad Fowler
- David Chelimsky
- Glenn Vanderburg
- Gregg Pollack
- Ilya Grigorik
- Jason Seifer
- Matt Aimonetti
- Obie Fernandez
- Pratik Naik
- Richard Kilmer
Se você for, deixe um comentário, nos encontramos por lá.
Posted in Eventos, Rails, Ruby | Tags railssummit, rails, ruby, event, infoq | Comments (1)
Formate melhor seu console do Rails ou irb com Hirb
by Ricardo Yasuda on September 16, 2009 02:54
Geralmente quando quero testar alguma coisa no ActiveRecord do Rails eu abro um console, usando o script/console. O problema é que a formatação dele (e consequentemente do irb, que é a engine por trás do console) é muito ruim, mostrando os resultados em forma de Hash.
Entra Hirb. Ele é, segundo o autor, Gabriel Horner, ‘um miniframework de visualização para console/irb’. As melhorias incluem formatação em tabelas de Arrays e Hashes, paginação, visualização em árvore e menu.
Para instalar,
sudo gem install cldwalker-hirb --source http://gems.github.com
e para usar, entre no irb/console, faça o require e ative
$ script/console Loading development environment (Rails 2.3.4) >> require 'hirb' => [] >> Hirb.enable => nil
Se quiser que o Hirb sempre esteja habilitado, crie ou edite o arquivo ~/.irbrc
if ENV['RAILS_ENV'] require 'rubygems' require 'hirb' Hirb.enable end
Vamos ver um exemplo com ActiveRecord:
>> Post.all :limit => 5 +----+---------------+---------------+---------------+---------------+---------+---------------+---------------+-----------+---------------+ | id | name | body | published_at | permalink | user_id | created_at | updated_at | published | comments_c... | +----+---------------+---------------+---------------+---------------+---------+---------------+---------------+-----------+---------------+ | 74 | Manipuland... | Uma das d?... | 2009-06-09... | manipuland... | 1 | 2009-06-09... | 2009-08-11... | true | 3 | | 73 | Limpando o... | !/system/a... | 2009-04-22... | limpando-o... | 1 | 2009-04-22... | 2009-08-11... | true | 0 | | 72 | Why's (poi... | <img src="... | 2009-04-09... | why-s-poig... | 1 | 2009-04-09... | 2009-08-11... | true | 0 | | 70 | Evento: Ru... | No dia 4 d... | 2009-03-10... | evento-rub... | 1 | 2009-03-10... | 2009-08-10... | true | 1 | | 68 | Dica rápi... | O <a href=... | 2009-03-06... | dica-rapid... | 1 | 2009-03-06... | 2009-03-06... | true | 1 | +----+---------------+---------------+---------------+---------------+---------+---------------+---------------+-----------+---------------+ 5 rows in set
Repare que na linha que tem um acento ele recua um caractere, deve ser um problema ainda a ser resolvido com caracteres especiais.
Uma outra coisa legal é a visualização em árvore. Digamos que você tenha um model Page com acts_as_tree, ou seja, uma instância de Page tem um parent_id, e pode ter filhas.
>> extend Hirb::Console
=> main
>> view Page.find_by_name('About Us'), :class => :parent_child_tree, :type => :directory
About Us
|-- Contact
|-- Our History
|-- Mission
|-- Privacy Policy
`-- Terms of Use
=> true
Prático, não? Isso é só uma parte do que o Hirb pode fazer, recomendo olhar o projeto no github e a documentação, tem muita coisa interessante.
Posted in Rails, Ruby | Tags gem, ruby, rails, console, irb, hirb, format | Comments (0)


