301 редирект для ROR

Вітаю!

Генеруємо для проекту контроллер:
ruby script/generate controller redirect


Далі йдемо у app/controllers/redirect_controller.rb і пишемо:
class RedirectController < ApplicationController
  def index
    headers["Status"] = "301 Moved Permanently"
    if params[:url]
      redirect_to params[:url]
      return
    else
      redirect_to "/"
    end
  end
end


У routes.rb писати:

map.connect '/old_page.html', :controller => 'redirect', :url => '/path/to/new_page'


або (якщо треба тільки на головну сторінку):
map.connect '/old_file.html', :controller => 'redirect'


Моя перша стаття :) Скоро перекладу статтю про написання блоґа на ROR ;)

Стаття з seo-форуму Promolab.org: http://promolab.org/index.php?showtopic=3319

Оригінал: http://www.andrewbruce.net/code/301_redirect_with_rails

Коментарі (6)

RSS згорнути / розгорнути
+
0
може а то очі разить :)
avatar

blaster

  • 30 липня 2009, 17:37
+
0
що?
avatar

whitemystyle

  • 30 липня 2009, 18:00
+
0
<cut>
малось на увазі… сорі :)
avatar

blaster

  • 31 липня 2009, 00:16
+
0
а воно буде працювати коли адрес на іншому хості?
плюс, які переваги над mod_rewrite?
avatar

zenyk

  • 30 липня 2009, 18:56
+
0
я на nginx .htaccess не знайшов :) + мод реврайте ще під .htaccess не працював нормально, чомусь. А так вийшло зручніше, написав, на локалхості тестанув і задеплоїв

>а воно буде працювати коли адрес на іншому хості?
Тобто перенаправляти на інший домен? Так, перевіряв.
avatar

whitemystyle

  • 31 липня 2009, 00:10
+
0
тоді ясно :)
головне щоб працювало

btw, — можна перемістити пост до рубі спільноти (стати членом спільноти, відредагувати пост, та вказати ruby як спільноту)
avatar

zenyk

  • 31 липня 2009, 00:12

Тільки зареєстровані й авторизовані користувачі можуть залишати коментарі.