+ Antworten
Ergebnis 1 bis 7 von 7

Thema: RealURL unterscheidet nicht zwischen _ (Unterstrich) und - (Minus)

  1. #1
    TP-Member superjens macht alles soweit korrekt
    Registriert seit
    Mar 2009
    Ort
    NRW
    Beiträge
    31

    RealURL unterscheidet nicht zwischen _ (Unterstrich) und - (Minus)

    Hallo liebes Forum,

    ich habe in einem Projekt den Space-Character bei RealURL von Unterstrich (_) auf Minus (-) umgestellt.
    Bsp vorher: www.meineurl.de/rubrik/unter_seite
    Bsp nachher: www.meineurl.de/rubrik/unter-seite

    Problem: Die Seiten werden bei Google jetzt doppelt indexiert. Beide Varianten werden mit HTTP Header 200 gefunden. Also kein 404 bei Unterstrich, was Google veranlassen würde die alte Seite zu kicken.
    Das liegt offenbar daran, dass RealURL so kulant ist, beides gleich zu interpretieren.

    Das Error-Handling ist bereits eingeschaltet, und funktioniert auch bei Rechtschreibfehlern (wie zB www.meineurl/rbik/egalwas oder www.meineurl/rubrik/untr-seite )
    PHP-Code:
    $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = '/seite_nicht_gefunden.html';
    $TYPO3_CONF_VARS['FE']['pageNotFound_handling_statheader'] = 'HTTP/1.1 404 Not Found'
    Hier die RealURL config:
    PHP-Code:
          // realurl config
          
    $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(

            
    // init
            
    'init' => array(
              
    'enableCHashCache' => 1,
              
    'appendMissingSlash' => 'ifNotFile',
              
    'enableUrlDecodeCache' => 1,
              
    'enableUrlEncodeCache' => 1,
              
    'respectSimulateStaticURLs' => 0,
    //          'postVarSet_failureMode'=>'redirect_goodUpperDir',
              
    'doNotRawUrlEncodeParameterNames' => 1,
              
    'enable404forInvalidAlias' => 1,
              
    'disableErrorLog' => 1,
            ),
                 
            
    // rewrite        
            
    'rewrite' => array(),
             
            
    // prevars
            
    'preVars' => array(
            ),
           
            
    // pagepath
            
    'pagePath' => array(
                
    'type' => 'user',
                
    'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
                
    'spaceCharacter' => '-',
                
    'expireDays' => 1,
                
    'rootpage_id' => '1',
                ),
           
            
    // filename
            
    'fileName' => array(
                  
    'defaultToHTMLsuffixOnPrev' => true,

                  
    'index' => array(
                      
    'druckversion.html' => array(
                                                  
    'keyValues' => array(
                                                                      
    'type' => 98,
                                                                      ),
                                                  ),
                      
    'pdf.html' => array(
                                                  
    'keyValues' => array(
                                                                      
    'type' => 123,
                                                                      ),
                                                  ),
                  ), 
                                                                                                                                                                                                                                                                                   
            ),       

            
    // postvarsets
            
    'postVarSets' => array(
              
    '_DEFAULT' => array(
                  
    'artikel' => array(
                      array(
                        
    'GETvar'            => 'content_id',
                        
    'lookUpTable'       => array(
                              
    'table'                 => 'tx_meinartikel_content',
                              
    'id_field'              => 'uid',
                              
    'alias_field'              => 'artikelname',
                              
    'addWhereClause'        => ' AND NOT deleted',
                              
    'useUniqueCache'        => 1,
                              
    'useUniqueCache_conf'   => array(
                                    
    'strtolower'            => 1,
                                    
    'spaceCharacter'        => '-',
                                  ),
                            ),
                      ),
                      array(
                           
    'GETvar' => 'type',
                           
    'valueMap' => array(
                                              
    'druckversion' => '98',
                                              
    'pdf' => '123',
                                              ),
                           ),
                 ),
              ),
            ),

            
    // fixedpostvars
            
    'fixedPostVars' => array(),
           
          ); 

    Wie kann ich RealURL diese Kulanz abgewöhnen, also bei der nicht mehr gültigen Unterstrich Variante einen 404 auszugeben, damit Google die Seiten kickt?

    Vielen Dank.

    Grüsse, Jens

  2. #2
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    Ich erinner mich das gleiche Problem gehabt zu haben.
    Einzige Chance seh ich in einer htaccess-Regel für die entsprechenden Seiten, eine Automatik gibt es nicht.
    Also händisch die betroffene Url mit einem 404-Header versehen.


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  3. #3
    TP-Member superjens macht alles soweit korrekt
    Registriert seit
    Mar 2009
    Ort
    NRW
    Beiträge
    31
    Hi Steffen.

    Das wäre schade. Und 200-300 Einträge in der htaccess - *uff* - aber immerhin eine Lösung. Vielen Dank.

    Ich experimentiere mal weiter. Wenn ich was herausfinde poste ich es hier. Vielleicht hat ja sonst noch jemand eine Idee.

    Ach ja, am Cache liegt es nicht. "Clear All Caches", sowie über das Info Modul alle RealURL Caches gelöscht, sicherheitshalber gleich nochmal per PHP alle RealURL Tabellen geleert, und den Webbrowsercache geleert.

    Grüsse, Jens

  4. #4
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    ich habe mal eine Extension für diese Sache mit simulateStatic geschrieben, das funktionierte nach dem Prinzip:
    Vergleiche Url mit tatsächlichem Titel. Bei richtiger Übersetung - go, bei flalscher, send 404


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  5. #5
    TP-Member superjens macht alles soweit korrekt
    Registriert seit
    Mar 2009
    Ort
    NRW
    Beiträge
    31
    Ah, klingt interessant. Der Code ist aber nicht "public", oder? Zumindest habe ich ihn nicht unter Deinen Extensions gefunden.
    Wäre schon interessiert, obwohl bei mir nicht nur Seiten betroffen sind, sondern auch Datensätze aus eigener Extension. Und eben RealURL. Könnte man ja umstricken.

    Eine weitere Lösungsmöglichkeit ist, über googles Webmastertools die Funktion "URLs löschen" zu verwenden. Pro: kein Programmieraufwand, kein einarbeiten in kryptische htaccess Syntax. Contra: Dauert eine Zeit bis zur Annahme der Löschung, Anzahl begrenzt, angeblich bleiben Seiten dann für mind. 180 Tage gelöscht.

    Grüße Jens

  6. #6
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    die Ext ist recht simple
    PHP-Code:
    class tx_simulatestaticuniqueurls {

        function 
    uniqueUrls(&$params, &$pObj) {
            
            
    $extConf unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['simulatestatic_unique_urls']);
            
    $extConf $extConf['plugin.']['tx_simulatestaticuniqueurls.'];
            
           
            if (
    substr($pObj->siteScript, -5) == '.html' && $extConf['redirectPID']) {
                
    $res $GLOBALS['TYPO3_DB']->exec_SELECTquery('title''pages''uid=' $pObj->id);
                
    $row $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
                
    $pageTitle $row['title'];
                
                
    $temp explode('.'$pObj->siteScript);         
                
    $usedTitle $temp[0]; 
                
                
                
    $replacementChar strpos($usedTitle'-') ? '-' '_';
                
    $replacementChars '_\-' . ($replacementChar != '_' && $replacementChar != '-' $replacementChar ''); 
                
                
    $out $pObj->csConvObj->specCharsToASCII($pObj->renderCharset$pageTitle);
                 
                
    $out preg_replace('/[^A-Za-z0-9_-]/'$replacementChartrim(substr($out0strlen($usedTitle))));
                
    $out preg_replace('/([' $replacementChars ']){2,}/''\1'$out);
                
    $out preg_replace('/[' $replacementChars ']?$/'''$out);
                
    $out preg_replace('/^[' $replacementChars ']?/'''$out);
            
                if (
    $out != $usedTitle) {
                    
    // doesn't match, make rediect
                    
    if ($extConf['headerCode']) {
                        
    header($extConf['headerCode']);     
                    }
                    
    $pObj->id $extConf['redirectPID'];
                }        
            }
        }

    die ext nutzt folgenden hook:
    PHP-Code:
    $TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_fe.php']['checkAlternativeIdMethods-PostProc'][$_EXTKEY] = 'EXT:simulatestatic_unique_urls/class.tx_simulatestaticuniqueurls.php:&tx_simulatestaticuniqueurls->uniqueUrls'
    hoffe es hilft Dir.


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  7. #7
    TP-Member superjens macht alles soweit korrekt
    Registriert seit
    Mar 2009
    Ort
    NRW
    Beiträge
    31
    >> die Ext ist recht simple
    recht simple *hust*. Für mich nicht wirklich Aber sicher gut zum lernen für später!

    Deine Tipps haben mich letztendlich auf die richtige Lösung gebracht:
    Mittels htaccess kann ich die alten Patzer mit 404 versehen. Eben alle, die in Google gelistet sind, sich aber nicht per TYPO3 mit 404 versehen lassen und leer generiert werden. Jetzt bekommt Google für diese Seiten einen 404.
    In meinem Fall siehts dann so aus:
    Code:
    RewriteRule (.*)123.html http://www.meineurl.de/index.php?id=140 [R=404]
    RewriteRule (.*)_ http://www.meineurl.de/index.php?id=140 [R=404]
    Kleiner Wehrmutstropfen: die eigene Typo3-404-Seite (id=140) wird nicht wie angegeben umgeleitet, und so bekommt der User statt einer gestylten CI-konformen Message eben einen Standard 404 Fehler vorgesetzt. Aber das ist ja nur für die Übergangszeit, bis Google aktualisiert ist.

    Vielen Dank nochmal und einen schönen Abend

+ Antworten

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 16.07.2009, 22:03
  2. REALURL - will nicht wirklich
    Von Elli im Forum TYPO3
    Antworten: 24
    Letzter Beitrag: 10.04.2008, 09:56
  3. Antworten: 4
    Letzter Beitrag: 21.03.2008, 15:07
  4. RealURL und Ordner nicht anzeigen lassen
    Von ExBoNd im Forum TYPO3
    Antworten: 3
    Letzter Beitrag: 16.03.2007, 18:03
  5. Leerzeichen zwischen bildern wird als unterstrich dargestellt
    Von ylil im Forum Dreamweaver & andere Webeditoren
    Antworten: 2
    Letzter Beitrag: 11.11.2002, 15:28

Stichworte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51