2012-07-11 4 views
0

블로그를 Octopress으로 옮기기 시작했습니다.하지만 유감스럽게도 지킬의 제한으로 인해 내 월식 축약 된 월 이름을 사용할 수 없습니다. permalinks. 따라서 비트를 모두 없애기 위해 최선을 다하고 있습니다.Permlink에서 월 및 일을 제거하기 위해 'rack-rewrite'사용

나는 이것을 호스트하기 위해 헤로 쿠를 사용하기 때문에 rack-rewrite을 사용하여 리다이렉션을 처리 할 수 ​​있다고 읽었습니다. this article. 그래서

가 어떻게 될지는 :

이 : example.com/journal/2012/jan/03/post-of-the-day/
이 속으로 : example.com/journal/2012/post-of-the-day/


추가 포인트 : 내가 /journal//blog/를 리디렉션 다른 규칙이 있다면, 아직도 그 규칙은 것 위의 것을 잘 준수 하는가? 그래서에서 :

이 : example.com/blog/2012/jan/03/post-of-the-day/
이 사람 : example.com/journal/2012/jan/03/post-of-the-day/
그리고 마지막에 : 사전에 도움을 example.com/journal/2012/post-of-the-day/

감사합니다. :)

답변

1

당신은 가능한 한 구체적으로 원하는 무슨 뜻인지 보여 Rubular 나에 대한 링크입니다 그렇지 않으면 새로운 URL 구조를 공격 할 때 실패합니다. 또한 랙 재 작성에 대해서는 잘 모르기 때문에 redroot89의 주장을 따르고 있습니다.

r301 %r{^\/(:blog|journal)\/([0-9]{4})\/[a-z]{3}\/[0-9]{2}\/(.*)\/$}, '/journal/$1/$2/

이 단지 년 슬러그 캡처하지만, 더 특정 패턴에 의해 나머지를 찾습니다. (:blog|journal)을 포함 시키면 두 개의 리디렉션을 함께 연결하지 않고도 한 번에 둘 다 리디렉션 할 수 있습니다.

2

내 첫 번째 생각은 슬래시 사이의 모든 청크를 파악한 다음 원하는 것을 표시하는 것입니다.

그래서이 같은 작동 할 : 여기

// given example.com/blog/2012/jan/03/post-of-the-day/ 

r301 %r{\/blog\/(.*)\/(.*)\/(.*)\/(.*)\/$}, '/journal/$1/$4/' 

가 실수로 뭔가를 다시 작성하지 않아도 내가 http://rubular.com/r/La6rjrE5Hw

+0

감사합니다. 마티가 한 번에 리디렉션을 수행하는 방법을 (': 블로그 | 저널)'했기 때문에 결국 마티를 선택했습니다. :) –