2013-08-20 2 views
0

У нас есть установка Redmine на старом сервере и перенесена на новый с новым доменом. Проблема в том, что нам нужно перенаправить URL-адреса из старого домена в новый. У меня действительно мало знаний о рубине. Я думал, что перенаправление URL-адресов на этом просто так же просто, как некоторые правила перезаписи с .htaccess, но я нашел его другим. Я прочитал несколько ответов здесь redirect, но не могу понять, куда их поставить.URL Rewrite Ruby on Rails

Сценарий должен быть как:

из http://www.old-domain.com:3000/issues/3456

должны быть перенаправлены на http://www.new-domain.com:3000/issues/3456

Может кто-нибудь помочь мне, как это сделать? Или если у вас есть идея, как это сделать? Я планирую прочитать некоторые рубиновые гиды тем временем. Спасибо, ребята!

Update:

мне удалось создать простой редирект, выполнив следующие действия: я создал контроллер redirect_controller.rb:

class RedirectController < ApplicationController 
    before_filter :show 

    def show 
    redirect_to "http://www.new-domain.com:3000/", :status => :moved_permanently, :notice => "Notice: A redirect!!!" 
    end 
end 

И добавил это routes.rb:

map.connect '/', :controller => 'redirect' 

Но мне удалось перенаправить страницу после успешного входа в систему. Как я могу перенаправить все страницы на новые, сохранив такие параметры, как/issues/3456, если они есть?

ответ

1

Вы можете перейти к файлу application.rb (я нашел его лучше, чем разместить перенаправление в application controller), который загружается, чтобы запустить все рельсы и все двигатели. Ключ здесь заключается в использовании

head :moved_permanently, :location => "http://www.newdomain.com/" 

Чтобы назвать это, вы можете обернуть его методом, который я нашел в блоге. Я добавил некоторые комментарии

def perm_redirect_to(options) 
    url = case options 
     when String # if you pass a string url, which is your case 
      options 
     else 
      url_for(options) # if you pass some more complex option hash in 
          # `options`, which doesn't seem to be your case 
     end 
    head :moved_permanently, :location => url 
end 

Вы можете вызвать этот метод прохождения своего адреса perm_redirect_to(your_new_url)!