2013-08-20 2 views
0

이전 서버에 Redmine을 설치하고 새 도메인으로 새 서버를 옮겼습니다. 문제는 이전 도메인의 URL을 새 도메인으로 리디렉션해야한다는 것입니다. 나는 정말로 루비에 대해 많은 지식을 가지고 있지 않다. 이 URL의 URL 리다이렉션은 .htaccess로 규칙을 다시 작성하는 것만큼이나 쉽지만 다른 점은 발견했다고 생각했습니다. 내가 여기에 어떤 대답을 redirect 읽어 봤지만 그 코드를 어디에 넣어 알아낼 수 없습니다. http://www.old-domain.com:3000/issues/3456URL Ruby on Rails를 다시 작성하십시오

에서

http://www.new-domain.com:3000/issues/3456

로 리디렉션해야 이

사람이 어떻게이 일을 좀 도와 줄래 : 같은

시나리오는되어야 하는가? 아니면 이것을 달성하는 방법을 더 잘 알고 있다면? 그동안 나는 루비 가이드를 읽을 계획입니다. 감사합니다.

업데이트 : 컨트롤러 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에 리디렉션을 배치하는 것보다 더 낫습니다)로 이동할 수 있습니다. 여기에 열쇠는 사용하는 것입니다

나는 블로그에서 찾은 방법으로 그것을 감쌀 수 있습니다. 몇 가지 의견을 추가했습니다.

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 

URL을 전달하는이 메서드를 호출 할 수 있습니다. perm_redirect_to(your_new_url)!

관련 문제