Antwort
 
LinkBack (1) Themen-Optionen Thema durchsuchen Thema bewerten Ansicht
  #1  
Alt 17.07.07, 14:56
Forum Newbie
 
Registriert seit: 18.08.06
Alter: 25
Beiträge: 35

Mehrsprachigkeit, RealURL, Links mit/ohne Sprachkürzel und doppelter Content


Hallo Forum!

Also. Es gibt kleine Website, drei Sprachen (de-Default/ru/en; One-Tree-Konzept) und RealURL.

Links zu den englischen und russischen Seiten werden nach dem folgenden Muster erzeugt:

meinedomain.de/sprachkürzel/seite/unterseite.html

Genauso sehen auch die deutschen Links aus (sowohl im Menü, als auch im Content), wenn man sich auf der Hauptseite (meinedomain.de) befindet. Auf den Unterseiten aber verwendet TYPO für die Links zu den Seiten der Default-Sprache (de) ein "vereinfachtes" Muster:

meinedomain.de/seite/unterseite.html

Auf diese Weise gibt es für alle Seiten der Dafault-Sprache jeweils zwei URLs -- einmal mit Sprachkürzel im Pfad und einmal ohne... Doppelter Content... nix gut... ))

Wo könnte das Problem liegen? Wahrscheinlich an den RealURL Einstellungen? Da ist mein RealURL Code:

PHP-Code:
// RealURL [start]

$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tstemplate.php']['linkData-PostProc'][] = 'EXT:realurl/class.tx_realurl.php:&tx_realurl->encodeSpURL';
$TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_fe.php']['checkAlternativeIdMethods-PostProc'][] = 'EXT:realurl/class.tx_realurl.php:&tx_realurl->decodeSpURL';

$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']['tx_realurl_urldecodecache'] = 'tx_realurl_urldecodecache';
$TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables']['tx_realurl_urlencodecache'] = 'tx_realurl_urlencodecache';

$TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment';

$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
 
 
'init' => array(
  
'enableCHashCache' => 0,
  
'appendMissingSlash' => 'ifNotFile',
 ),
 
 
'preVars' => array(
  array(
   
'GETvar' => 'no_cache',
   
'valueMap' => array(
    
'no_cache' => 1,
   ),
   
'noMatch' => 'bypass',
  ),
  array(
   
'GETvar' => 'L',
   
'valueMap' => array(
   
'de' => '0',
   
'en' => '1',
   
'ru' => '2',
   ),
   
'noMatch' => 'bypass',
  ),
 ),
 
'fileName' => array (
  
'defaultToHTMLsuffixOnPrev' => true,
  
'index' => array(
   
'backend.php' => array(
    
'keyValues' => array (
     
'type' => 100,
    )
   ),
   
'print' => array(
    
'keyValues' => array(
   
'type' => 98,
   )
   ),
  ),
 ),
 
'postVarSets' => array(
  
'_DEFAULT' => array (
   
'news' => array(
     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' => '-',
                                    ),
                                ),
     ),
     array(
      
'GETvar' => 'tx_ttnews[backPid]',
     ),
   ),
   
'category' => array(
    array(
     
'GETvar' => 'tx_ttnews[cat]',
    ),
   ),
   
'neste' => array(
    array(
     
'GETvar' => 'tx_ttnews[pointer]',
    ),
   ),
  ),
 ),
 
'pagePath' => array(
  
'type' => 'user',
  
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
  
'spaceCharacter' => '-',
  
'languageGetVar' => 'L',
  
'expireDays' => 3
 
),
);

// RealURL [stop] 
Mus gestehen, dass ich den irgenwo im Netz gefunden und einfach reinkopiert hab und weiß deshalb nicht mal ansatzweise, wie ich ihn jetzt ändern muss...

Wäre sehr dankbar, wenn ihr mir helfen könntet.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #2  
Alt 17.07.07, 15:46
Forum Newbie
 
Registriert seit: 18.08.06
Alter: 25
Beiträge: 35

Zitat:
Zitat von automatix Beitrag anzeigen
[...]Genauso sehen auch die deutschen Links aus (sowohl im Menü, als auch im Content), wenn man sich auf der Hauptseite (meinedomain.de) befindet.[...]
Stimmt nicht mehr... Jezt ist es auf allen de-Seiten ohne de-Sprachkürzel... Dabei hab ich am Code nichts geändert!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #3  
Alt 17.07.07, 17:30
Forum Newbie
 
Registriert seit: 18.08.06
Alter: 25
Beiträge: 35

In meinem PHP-Code fehlte 'rootpage_id' -- hab ich jetzt eingefügt (bzw. jetzt benutze ich einfach diesen Code:
PHP-Code:
$TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment';
$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
    
'_DEFAULT' => array(
        
'init' => array(
            
'enableCHashCache' => 1,
            
'appendMissingSlash' => 'ifNotFile',
            
'enableUrlDecodeCache' => 1,
            
'enableUrlEncodeCache' => 1,
            
'postVarSet_failureMode' => '',
        ),
        
'redirects' => array(),
        
'preVars' => array(
            array(
                
'GETvar' => 'no_cache',
                    
'valueMap' => array(
                        
'nc' => 1,
                    ),
                    
'noMatch' => 'bypass',
                ),
                array(
                    
'GETvar' => 'L',
                    
'valueMap' => array(
                        
# 'de' => '0',
                        
'en' => '1',
                        
'ru' => '2',
                    ),
                    
'defaultValue' => 'de',
                    
'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,
            ),
            
'fixedPostVars' => array(),
            
'postVarSets' => array(
                
'_DEFAULT' => array(
                    
// news archive parameters
                    
'archive' => array(
                        array(
                            
'GETvar' => 'tx_ttnews[year]' ,
                        ),
                        array(
                            
'GETvar' => 'tx_ttnews[month]' ,
                            
'valueMap' => array(
                            
'january' => '01',
                            
'february' => '02',
                            
'march' => '03',
                            
'april' => '04',
                            
'may' => '05',
                            
'june' => '06',
                            
'july' => '07',
                            
'august' => '08',
                            
'september' => '09',
                            
'october' => '10',
                            
'november' => '11',
                            
'december' => '12',
                        )
                    ),
                ),
                
// news pagebrowser
                
'browse' => array(
                    array(
                        
'GETvar' => 'tx_ttnews[pointer]',
                    ),
                ),
                
// news categories
                
'select_category' => array (
                    array(
                        
'GETvar' => 'tx_ttnews[cat]',
                    ),
                ),
                
// news articles anMd searchwords
                
'article' => array(
                    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' => '-',
                            ),
                        ),
                    ),
                    array(
                        
'GETvar' => 'tx_ttnews[backPid]',
                    ),
                    array(
                        
'GETvar' => 'tx_ttnews[swords]',
                    ),
                ),
            ),
        ),
        
// configure filenames for different pagetypes
        
'fileName' => array(
            
'defaultToHTMLsuffixOnPrev' => 1,
            
'index' => array(
                
'print.html' => array(
                    
'keyValues' => array(
                        
'type' => 98,
                    ),
                ),
                
'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,
                    ),
                ),
            ),
        ),
    ),
); 
). Nun haben alle Links auf die Seiten der Defaultsprache keinen Sprachschlüssel, und alle anderen werden nach dem "erweiterten" Muster (meinedomain.de/sprachkürzel/seite/unterseite.html) gebildet. Das ist schon was -- keinen doppelten Content mehr!

Jetzt würde ich aber trotzdem gerne wissen, wie man es so lösen kann, dass alle Defaultsprache-Links einen Sprachkürzel bekommen. Das muss doch auch irgendwie gehen...
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #4  
Alt 18.07.07, 14:22
Forum Newbie
 
Registriert seit: 18.07.07
Alter: 37
Beiträge: 24

Damit hatte ich vorhin auch zu kämpfen.

Nimm mal das Hash-Zeichen hier weg und kommentiere dafür 'nomatch' aus.

PHP-Code:
array(
                    
'GETvar' => 'L',
                    
'valueMap' => array(
                        
# 'de' => '0',
                        
'en' => '1',
                        
'ru' => '2',
                    ),
                    
'defaultValue' => 'de',
                    
'noMatch' => 'bypass',
                ), 

Geändert von chennecke (18.07.07 um 14:37 Uhr).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #5  
Alt 18.07.07, 19:12
Forum Newbie
 
Registriert seit: 18.08.06
Alter: 25
Beiträge: 35

So?

PHP-Code:
                array(
                    
'GETvar' => 'L',
                    
'valueMap' => array(
                        
'de' => '0',
                        
'en' => '1',
                        
'ru' => '2',
                    ),
                    
'defaultValue' => 'de',
                    
# 'noMatch' => 'bypass',
                
), 
Nö, bei mir hauts nicht hin... Nachdem ich den Code geändert und alle Mögliches Caches gelöscht hab, hats par minuten einwandfreifunktioniert -- alle de-Links haben /de/ bekommen und alles war super. Und schon nach ein paar Minuten gings wieder nicht mehr. Ich verstehe es nicht!

Würdest Du bitte so nett sein und Deinen RealURL-Code aus dem localconf.php posten. Danke Dir!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #6  
Alt 18.07.07, 22:41
Forum Newbie
 
Registriert seit: 18.07.07
Alter: 37
Beiträge: 24

Ich habe gerade mal nachgeschaut: "#" ist kein gültiges Kommentarzeichen bei PHP. Ersetze das mal durch "//" (zwei Schrägstriche). Ansonsten steht bei mir praktisch das gleiche drin, bis auf die Konfiguration für mm_forum und dr_wiki.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #7  
Alt 18.07.07, 23:04
Forum Newbie
 
Registriert seit: 18.08.06
Alter: 25
Beiträge: 35

Also, ich habs auch mit // ausprobiert (obwohl # eigentlich auch OK sein müsste). So sieht jetzt der Code aus:

PHP-Code:
$TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment';
$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
    
'_DEFAULT' => array(
        
'init' => array(
            
'enableCHashCache' => 1,
            
'appendMissingSlash' => 'ifNotFile',
            
'enableUrlDecodeCache' => 1,
            
'enableUrlEncodeCache' => 1,
            
'postVarSet_failureMode' => '',
        ),
        
'redirects' => array(),
        
'preVars' => array(
            array(
                
'GETvar' => 'no_cache',
                    
'valueMap' => array(
                        
'nc' => 1,
                    ),
                    
'noMatch' => 'bypass',
                ),
                array(
                    
'GETvar' => 'L',
                    
'valueMap' => array(
                        
'de' => '0',
                        
'en' => '1',
                        
'ru' => '2',
                    ),
                    
'defaultValue' => 'de',
                    
// '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,
            ),
            
'fixedPostVars' => array(),
            
'postVarSets' => array(
                
'_DEFAULT' => array(
                    
// news archive parameters
                    
'archive' => array(
                        array(
                            
'GETvar' => 'tx_ttnews[year]' ,
                        ),
                        array(
                            
'GETvar' => 'tx_ttnews[month]' ,
                            
'valueMap' => array(
                            
'january' => '01',
                            
'february' => '02',
                            
'march' => '03',
                            
'april' => '04',
                            
'may' => '05',
                            
'june' => '06',
                            
'july' => '07',
                            
'august' => '08',
                            
'september' => '09',
                            
'october' => '10',
                            
'november' => '11',
                            
'december' => '12',
                        )
                    ),
                ),
                
// news pagebrowser
                
'browse' => array(
                    array(
                        
'GETvar' => 'tx_ttnews[pointer]',
                    ),
                ),
                
// news categories
                
'select_category' => array (
                    array(
                        
'GETvar' => 'tx_ttnews[cat]',
                    ),
                ),
                
// news articles anMd searchwords
                
'article' => array(
                    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' => '-',
                            ),
                        ),
                    ),
                    array(
                        
'GETvar' => 'tx_ttnews[backPid]',
                    ),
                    array(
                        
'GETvar' => 'tx_ttnews[swords]',
                    ),
                ),
            ),
        ),
        
// configure filenames for different pagetypes
        
'fileName' => array(
            
'defaultToHTMLsuffixOnPrev' => 1,
            
'index' => array(
                
'print.html' => array(
                    
'keyValues' => array(
                        
'type' => 98,
                    ),
                ),
                
'rss.xml' => array(
                    
'keyValues' => array(
                        
'type' => 100,
                    ),
                ),
                
'rss091.xml' => array(
         &nb