2011-04-08 3 views
0

PHP로 작성된 이전 응용 프로그램이 있는데 이제는 새로운 RoR 응용 프로그램으로 교체 할 예정입니다. 이전 응용 프로그램에는 "this-is-seo-title, n123.html"과 같은 링크가 있습니다. htaccess에는 news.php? id = 123에 대한 링크를 번역하는 규칙이 있습니다.Ruby on Rails 및 표준 mod_rewrite

이제 RoR 앱을 설치하면 링크가 "RoR 방식"(: controller/: action/: id)에 있습니다. 멋지고 멋지지만 Google에서는 약 50,000 개의 색인 된 서브 페이지가 있습니다. 이 색인 생성 된 서브 페이지가 망가지지 않으려면 여기에 질문이 있습니다 :

"news-is-seo-title, n123.html"링크를/news로 번역 할 htaccess 파일에 새 규칙을 만들 수 있습니까?/123?

아직 앱을 배포하지 않았으므로 승객 모듈이있는 환경에 액세스 할 수 없어 직접 테스트 할 수 없습니다.

답변

0

나는 htaccess를 사용할 필요가 없다고 생각합니다. 레일에 가면 레일 헬퍼를 사용하십시오. 나는 이것이 당신의 routes.rb에서 작동해야한다고 생각 : id 매개 변수 : 경로가 NewsController가와로 (123)와 show 액션을 호출합니다

match 'this-is-seo-title,n:id.html' => 'news#show' 

있다. 그게 니가 원하는 곳이야?

편집 : 레일 2

map.connect 'this-is-seo-title,n:id.html', :controller => 'news', :action => 'show' 

를 들어

은 적어도 내가 위로와 테스트 기압 실행하는 환경이없는 그 레일 2에서 작동합니다 생각합니다. 작동하지 않는지 알려주세요.

+0

실수로 2.3.6 RoR에서 작업하고 있습니다. RoR3에서 버전을 사용하는 것이 가능합니까? – Arti

+0

불행히도 그것은 작동하지 않습니다. 나는 시도했다 : – Arti

+0

나는 시도했다 : map.connect '/news,n:id.html', : 컨트롤러 => 'posts', : action => 'show'and map.connect 'news, n : id.html', : 컨트롤러 => 'posts', : action => 'show'그리고 오류가 발생했습니다 : 경로가 "/news,n897.html"과 일치하지 않습니다 : {: method => : get} – Arti