Ah, probably this could be done with regex in the .htaccess!

Am 12.02.12 11:04, schrieb Urs Bräm:
Hi Michael

sorry for not replying earlier! Thanks for your solution - though I
couldn't get it to work yet.

Just a quick check if you mean the same thing as I:

In my setup, there are no alternative language domains, just one main
domain. I just want RealURL to 301 all URLs that contain no language
parameter to the home page, or even 404 them. This is because I don't
want any USER_INT scripts on my pages to get better caching.

So something like: "If no preVar, then buzz off"

Is that roughly what your solution does?

best regards
Urs



Am 13.01.12 18:44, schrieb Michael Cannon:
Urs,

If you're using a custom realurl configuration, then you can use the
_DOMAINS encode/decode options to force your language.

Maybe it's not the cleanest, but works for some of what I need.

$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
'_DEFAULT' => $realurlConfig,
'www.example.com' => $realurlConfig,
'www.example.fr' => $realurlConfig,
'www.example.de' => $realurlConfig,
);

$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DOMAINS'] = array(
'encode' => array(
array(
'GETvar' => 'L',
'value' => '0', // de
'useConfiguration' => 'www.example.de',
'urlPrepend' => 'http://www.example.de'
),
array(
'GETvar' => 'L',
'value' => '1', // en
'useConfiguration' => 'www.example.com',
'urlPrepend' => 'http://www.example.com'
),
...
array(
'GETvar' => 'L',
'value' => '3', // fr
'useConfiguration' => 'www.example.fr',
'urlPrepend' => 'http://www.example.com/fr/'
),
),
'decode' => array(
'www.example.com' => array(
'GETvars' => array(
'L' => '0',
),
'useConfiguration' => 'www.example.de'
),
'www.example.de' => array(
'GETvars' => array(
'L' => '1',
),
'useConfiguration' => 'www.example.com'
),
'www.example.fr' => array(
'GETvars' => array(
'L' => '3',
),
'useConfiguration' => 'www.example.fr'
),
)
);

Michael
--
Michael Cannon
The TYPO3 Vagabond<http://typo3vagabond.com> @ in2code.de
Been there, done that, 25 years of coding
Germany +49 (0)160 574 1973
US +1 617 539 6072
http://typo3vagabond.com





On Mon, Jan 9, 2012 at 11:04 PM, Urs Bräm<i...@ursbraem.ch> wrote:

Hi

is it possible to make RealURL force the preVar language parameter to
avoid duplicate content?

My sites mostly should have a symmetrical URL structure for each
language,
like so:

example.com/de/kontakt (L=0)
example.com/fr/contact (L=1)

not like so:

example.com/kontakt (L=0)
example.com/fr/contact (L=1)

(as in the second example it would make the impression that the two
languages don't have the same value, as german would be the main
language
and french a mere translation; a swiss political issue)

This symmetrical URL structure is of course easy to achieve, but still
Links in the form of example.com/kontakt *do work* and generate pages
without the preVar in all the links. Is there a way to force TYPO3 to
always maintain the preVar and force the default language into the
URL if
nothing is set??

I'm not that concerned about DC, but I have had a few other problems
resulting from confusions with the multiple URLs.

Thanks!
Urs

PS here's my Config. I know "'noMatch' => 'bypass'" is usually not set,
but I need it and turning it off wouldn't change anything regarding to a
URL without preVar:

<?php
$TYPO3_CONF_VARS['EXTCONF']['**realurl']['_DEFAULT'] = array(
'init' => array(
'enableCHashCache' => 1,
'appendMissingSlash' => 'ifNotFile',
'enableUrlDecodeCache' => 1,
'enableUrlEncodeCache' => 1,
'respectSimulateStaticURLs' => 0,
//'postVarSet_failureMode'=>'**redirect_goodUpperDir',
),
'redirects_regex' => array (

),
'preVars' => array(
array(
'GETvar' => 'L',
'valueMap' => array(
'de' => '0',
'fr' => '1',
),
'valueDefault' => 'de',
'noMatch' => 'bypass',
),
array(
'GETvar' => 'no_cache',
'valueMap' => array(
'no_cache' => 1,
),
'noMatch' => 'bypass',
),
),
'pagePath' => array(
'type' => 'user',
'userFunc' => 'EXT:realurl/class.tx_realurl_**
advanced.php:&tx_realurl_**advanced->main',
'spaceCharacter' => '-',
'languageGetVar' => 'L',
'expireDays' => 7,
'rootpage_id' => 1,
),


'postVarSets' => array(
'_DEFAULT' => array(
// news archive parameters
'date' => array(
array(
'GETvar' => 'tx_ttnews[month]' ,

),
array(
'GETvar' => 'tx_ttnews[year]' ,
),

),
// news pagebrowser
'browse' => array(
array(
'GETvar' => 'tx_ttnews[pointer]',
),
),
// news categories
'select_category' => array (
array(
'GETvar' => 'tx_ttnews[cat]',
),
),
// news articles and searchwords
'art' => array(
array(
'GETvar' => 'tx_ttnews[pointer]',
'valueMap' => array(),
'noMatch' => 'bypass',
),
array(
'GETvar' => 'tx_ttnews[tt_news]',
'lookUpTable' => array(
'table' => 'tt_news',
'id_field' => 'uid',
'alias_field' => 'title',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
'languageGetVar' => 'L',
'languageExceptionUids' => '',
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l18n_parent',
'autoUpdate' => 1,
'expireDays' => 180,
),
),
),
),
),

'fileName' => array(
'defaultToHTMLsuffixOnPrev'=>**0,
'index' => array(
'rss.xml' => array(
'keyValues' => array(
'type' => 100,
),
),
'rss091.xml' => array(
'keyValues' => array(
'type' => 101,
),
),
'rdf.xml' => array(
'keyValues' => array(
'type' => 102,
),
),
'atom.xml' => array(
'keyValues' => array(
'type' => 103,
),
),
),
),
);
php?>

--
Urs Bräm
macht Websites
---
Certified Typo3 Integrator
CH-3011 Bern
www.ursbraem.ch
______________________________**_________________
TYPO3-english mailing list
TYPO3-english@lists.typo3.org
http://lists.typo3.org/cgi-**bin/mailman/listinfo/typo3-**english<http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-english>






--
Urs Bräm
macht Websites
---
Certified Typo3 Integrator
CH-3011 Bern
www.ursbraem.ch
_______________________________________________
TYPO3-english mailing list
TYPO3-english@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-english

Reply via email to