そこで、rel=canonical で使用するために、ドキュメントの先頭にあるページの URL をレンダリングしようとしています。これは、Velocity テンプレートを実行しているサイトにあります。私が話しているコンテンツのタイプは、具体的にはクイズです。これには、ユーザーが正解した回答の数を反映するさまざまな URL パラメーターは言うまでもなく、質問ごとに 1 つずつ複数のページがあります。
このサイトには、クイズの 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&qnum=$3</to>
</rule>
これはすべて、この Velocity コードを使用していることを説明するためのものです。
<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/" />
それは十分に明確ですか?これが複雑であることはわかっていますが、どうすればそれを達成できるかについて誰か考えがありますか?