2013-03-13 39 views
0

因此,我試圖在文檔的頭部呈現頁面的URL,以便與rel = canonical一起使用。這是在運行Velocity模板的網站上。我所談論的內容類型特別是一個測驗 - 它有多個頁面,每個問題一個,更不用說不同的URL參數,反映了用戶得到正確答案的多少答案。引用速度模板中的重定向URL

該站點具有重定向規則以生成測驗的URL。他們是這樣的:

<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> 

所有這一切都解釋說,我用這個速度編碼方式:

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

在該頁模板:

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

哪位生產的HTML:

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

但我想HTML

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

清楚了還不夠嗎?我知道這很複雜,但是有沒有人對我如何能夠完成它有任何想法?

回答

0

您的Velocity模板需要知道URL的其餘部分。你沒有解釋你如何渲染速度。它是春天嗎?速度Servlet?其他一些系統?

其基本思想是您需要另一個名爲$ baseUrl的引用。 Velocity模板合併

(在Java中)之前在Java代碼中設置此

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

(中速)

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