2013-03-13 2 views
0

rel = canonical과 함께 사용하기 위해 페이지의 URL을 문서의 머리 부분에 렌더링하려고합니다. Velocity 템플릿을 실행하는 사이트에 있습니다. 제가 이야기하는 내용의 유형은 구체적으로 퀴즈입니다. 퀴즈에는 여러 개의 페이지가 있습니다. 하나는 각 질문에, 다른 하나는 사용자가 옳은 답변을 얼마나 많이 반영했는지는 말할 것도 없습니다.Velocity 템플릿의 리디렉션 URL을 참조하십시오.

사이트에는 퀴즈에 대한 URL을 생성하기위한 리디렉션 규칙이 있습니다. 그들은 다음과 같이 :

http://example.com/fun/quiz_best_quiz_ever/1.htm

:이 페이지의 템플릿에

<link rel="canonical" href="$link.self" /> 

:

<rule> 
<from>^/([a-zA-Z_0-9\-]*)/(quiz_[a-zA-Z_0-9\-]*)/(\d*).htm$</from> 
<to>/contentdata/quiz.htm?path=/$1/$2.xml&amp;qnum=$3</to> 
</rule> 

이 모든

내가이 속도 코드를 사용하고 있다고 설명의 방법입니다

다음 HTML을 생성합니다 :

<link rel="canonical" href="/contentdata/quiz.htm" /> 

그러나 나는이 HTML 입니다 원하는 :

<link rel="canonical" href="http://example.com/fun/quiz_best_quiz_ever/" /> 

충분히 분명하다? 나는 이것이 복잡하다는 것을 알고 있지만, 누군가 그것을 어떻게 성취 할 수 있을지에 대해 어떤 생각을 가지고 있습니까?

답변

0

Velocity 템플릿은 나머지 URL이 무엇인지 알아야합니다. Velocity를 렌더링하는 방법을 설명하지 않았습니다. 봄 이니? 속도 서블릿? 다른 시스템?

기본적인 개념은 $ baseUrl이라는 다른 참조가 필요하다는 것입니다. 벨로 시티 템플릿이

(자바)

를 병합하기 전에 자바 코드에서이 설정

<link rel="canonical" href="$baseUrl/$link.self" /> 
(속도)에

context.put("baseUrl", "http://example.com/fun/quiz_best_quiz_ever");