[TYPO3-english] Link rel=canonical revisited - does anyone have a better solution than this?

Taras Sajuk taras.sajuk at googlemail.com
Tue May 18 16:09:10 CEST 2010


I have seen several TS solutions to generate the canonical url. But they did
not match my requirements:

   - Dropping all GPvars except the page id was not acceptable as we are
   using tt_news and other FE-Plugins with meaningful parameters.
   - Using all GPvars with "addQueryString=1" and then exclude the useless
   ones with the "addQueryString.exclude=" is not working as there seems to
   lots of strange GPvars making their way into Google's databases, including
   tt_news backPID and even Admin panel options.

Here is my TS solution where a list of "to be included" GPvars can be
specified, all other will be dropped:

temp.buildHeaderData.30 = TEXT
> temp.buildHeaderData.30.typolink.parameter = #
> temp.buildHeaderData.30.typolink.returnLast = url
> temp.buildHeaderData.30.wrap = <link rel="canonical" href="|">
> [globalVar = GP:type=]
> temp.buildHeaderData.30.typolink.additionalParams.stdWrap =
> [else]
> temp.buildHeaderData.30.typolink.additionalParams.stdWrap.innerWrap.data =
> GPvar:type
> temp.buildHeaderData.30.typolink.additionalParams.stdWrap.innerWrap.wrap =
> &type=|
> [end]
> [globalVar = GP:print=]
> temp.buildHeaderData.30.typolink.additionalParams.stdWrap.stdWrap =
> [else]
> temp.buildHeaderData.30.typolink.additionalParams.stdWrap.stdWrap.
> innerWrap.data = GPvar:print
> temp.buildHeaderData.30.typolink.additionalParams.stdWrap.stdWrap.
> innerWrap.wrap = &print=|
> [end]
> [globalVar = GP:tx_rlmpofficeimport_pi1|page=]
> temp.buildHeaderData.30.typolink.additionalParams.stdWrap.stdWrap.stdWrap
> =
> [else]
> temp.buildHeaderData.30.typolink.additionalParams.stdWrap.stdWrap.stdWrap.
> innerWrap.data = GPvar:tx_rlmpofficeimport_pi1|page
> temp.buildHeaderData.30.typolink.additionalParams.stdWrap.stdWrap.stdWrap.
> innerWrap.wrap = &tx_rlmpofficeimport_pi1[page]=|
> [end]
> [globalVar = GP:tx_ttnews|tt_news=]
> temp.buildHeaderData.30.typolink.additionalParams.stdWrap.stdWrap.stdWrap.
> stdWrap =
> [else]
> temp.buildHeaderData.30.typolink.additionalParams.stdWrap.stdWrap.stdWrap.
> stdWrap.innerWrap.data = GPvar:tx_ttnews|tt_news=
> temp.buildHeaderData.30.typolink.additionalParams.stdWrap.stdWrap.stdWrap.
> stdWrap.innerWrap.wrap = &tx_ttnews[tt_news]=|
> [end]
>

it works, but looks ugly due to the increasing .stdWrap. chain. does someone
have a smarter solution?


Taras Sajuk


More information about the TYPO3-english mailing list