RealURL [Gelöst]


  • 0 x
    11. 08. 2007, 16:54

    Hallo zusammen,

    hier eine kleine Anleitung, wie ich RealURL für mich zum Laufen gebracht habe.

    Nach der Installation (und nach dem Einstellen des Templates und der .htaccess) hatte ich einige Probleme, deren Lösung ich ausführlicher schildere.

    Ein Problem war, dass ich statt Unterseiten nur einen [b]Fehler 404[/b] angezeigt bekam.
    Außerdem: [b]Firefox verlinkte Dateien[/b] (Stylesheets, Bilder usw.) [b]nicht richtig[/b]: Die Links verwiesen, wenn man im Seitenbaum in einem Unterordner war, in diese Unterordner.

    [b]Zur Lösung:[/b]
    Funktioniert mit den aktuellen Versionen Typo3 4.1.2 und RealURL 1.1.4.

    Meine [b].htaccess[/b]:
    [TS]RewriteEngine On
    Options +FollowSymLinks

    RewriteBase /

    RewriteRule ^typo3$ - [L]RewriteRule ^typo3/.*$ - [L]

    RewriteRule ^(typo3|banner|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)/ - [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

    RewriteRule (\.html|/)$ index.php

    #RewriteRule .* index.php
    [/TS]
    [b]Beachte[/b]: [b]RewriteBase[/b] muss (wenn Typo3 direkt im Root-Ordner installiert ist) wie oben zu sehen eingetragen werden!

    Auszug aus meinem [b]Typoscript[/b] (im Template):
    [TS]# RealURL aktivieren
    config.simulateStaticDocuments = 0
    config.baseURL = http://www.seite.de/
    config.tx_realurl_enable = 1
    config.prefixLocalAnchors = all[/TS]

    [b]Beachte hier[/b]: bei [b]config.baseURL[/b] muss auf jeden Fall auch das [b]http://[/b] mit angegeben werden, sonst erzeugt der Firefox (Version 2.0.0.6) Links, die in den aktuellen Ordner verweisen, anstatt den ausgegebenen base-Tag zu verwenden.
    Auch darf der [b]Slash am Ende[/b] nicht fehlen, sonst findet der Internet Explorer die Seiten nicht und gibt den entsprechenden Fehler 404 aus.

    Die [b]ext_localconf.php[/b] (im Ordner typo3conf/ext/realurl/) habe ich mit folgendem Code bestückt.

    1. <?php
    2. $TYPO3_CONF_VARS['SC_OPTIONS'] ['t3lib/class.t3lib_tstemplate.php'] ['linkData-PostProc'] []
    3. = 'EXT:realurl/class.tx_realurl.php:&tx_realurl->encodeSpURL';
    4. $TYPO3_CONF_VARS['SC_OPTIONS'] ['tslib/class.tslib_fe.php'] ['checkAlternativeIdMethods-PostProc'] []
    5. = 'EXT:realurl/class.tx_realurl.php:&tx_realurl->decodeSpURL';
    6. $TYPO3_CONF_VARS['SC_OPTIONS'] ['t3lib/class.t3lib_tcemain.php'] ['clearAllCache_additionalTables'] ['tx_realurl_urldecodecache']
    7. = 'tx_realurl_urldecodecache';
    8. $TYPO3_CONF_VARS['SC_OPTIONS'] ['t3lib/class.t3lib_tcemain.php'] ['clearAllCache_additionalTables'] ['tx_realurl_urlencodecache']
    9. = 'tx_realurl_urlencodecache';
    10. $TYPO3_CONF_VARS['FE'] ['addRootLineFields'] .=
    11. ',tx_realurl_pathsegment,alias,nav_title,title';
    12.  
    13. $TYPO3_CONF_VARS['EXTCONF'] ['realurl'] ['_DEFAULT'] = array(
    14.  
    15. 'init' => array(
    16. 'enableCHashCache' => 1,
    17. 'appendMissingSlash' => 'ifNotFile',
    18. 'enableUrlDecodeCache' => 1,
    19. 'enableUrlEncodeHash' => 1,
    20. // 'postVarSet_failureMode' => 'redirect_goodUpperDir',
    21. ),
    22.  
    23. 'redirects' => array(
    24. ),
    25. /* 'rewrite' => array(
    26. ), */
    27.  
    28. 'preVars' => array(
    29. /* array(
    30. 'GETvar' => 'no_cache',
    31. 'valueMap' => array(
    32. 'nc' => 1,
    33. ),
    34. 'noMatch' => 'bypass',
    35. ), */
    36. /*
    37. array(
    38. 'GETvar' => 'L',
    39. 'valueMap' => array(
    40. 'de' => '0',
    41. 'en' => '1',
    42. ),
    43. 'valueDefault' => 'de',
    44. ),
    45. */
    46. ),
    47.  
    48. 'pagePath' => array(
    49. 'type' => 'user',
    50. 'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
    51. 'spaceCharacter' => '-',
    52. 'languageGetVar' => 'L',
    53. // 'firstHitPathCache' => 1,
    54. 'expireDays' => 3,
    55. // ------------> hier unbedingt die id der Rootseite anpassen!!! <------------
    56. 'rootpage_id' => '1'
    57. ),
    58.  
    59. 'fileName' => array (
    60. 'defaultToHTMLsuffixOnPrev' => 1,
    61. 'index' => array(
    62. /*'index.html' => array(*/
    63. 'keyValues' => array (
    64. /*'type' => 1,*/
    65. ),
    66. /*),*/
    67. ),
    68. ),
    69.  
    70. 'fixedPostVarSets' => array(
    71. ),
    72.  
    73. 'postVarSets' => array(
    74. ),
    75. );
    76. ?>

    [b]Beachte[/b]: Die id zur Rootseite muss entsprechend der jeweiligen Installation angepasst werden.

    [b]Nach jeder Änderung in dieser Datei[/b] müssen im Backend die [b]Caches geleert[/b] werden.
    [b]Erst danach[/b] die Seite neu aufrufen (Browsercache evtl. vorher leeren) und das Ergebnis ansehen.

    Ergebnis
    Alle Seiten sind aufrufbar, nicht unterstützt wird so ein Schnickschnack wie etwa Sprachen, Druckansicht usw...
    [Ich würd mich über entsprechende Ergänzungen aber freuen! :)]

    [b]Zur Frage: Wie krieg ich jetzt Ordner hin?[/b]
    Bsp.:
    Ich habe einen Baum mit folgenden Seiten:
    - Hobby
    -- Drachenfliegen
    -- Rasenmähen

    Ohne weitere Eingabe werden von RealURL automatisch folgende Pfade erzeugt:
    hobby.html
    hobby/drachenfliegen.html
    hobby/rasenmaehen.html

    Will man die [b]Namen des Unterordners[/b] (im Beispiel also das [b]hobby[/b]/drachenfliegen.html) ändern, ist folgendes zu tun:
    Es muss bei der Seite darüber der [b]Seitentyp[/b] auf [b]Erweitert[/b] gestellt werden, hier also bei Hobby.
    Dadurch wird das Feld "Speaking URL path segment" sichtbar.
    In dieses muss man den Namen des Ordners eintragen, den die Unterseiten im Pfad haben sollen.
    Trägt man hier etwa "freizeit" ein (ohne die Anführungsstriche), so ergibt sich folgendes:
    hobby.html
    freizeit/drachenfliegen.html
    freizeit/rasenmaehen.html

    Den [b]Namen der Datei[/b] hobby.html selbst kann man ändern, indem man ihr einen [b]alias[/b] zuweist (muss im System einmalig sein).

    ===

    Ich hoffe, das hilft wem, würd mich freuen. :-)


  • 0 x
    11. 08. 2007, 21:34 - Lösung

    Man, welch eine Ehre. :)

    Ich hab aber auch verdammt lange dran gesessen.
    Da hab ich mir gedacht, dass es [b]für mich[/b] jetzt auch nicht mehr DER Aufwand ist, zusammenzufassen, was ich gemacht hab und wo für mich die Knackpunkte waren.

    Und ich hoffe mal, dass [b]Andere[/b] da auf die gleichen Probleme stoßen. :)

    Was man noch ausführlicher machen kann wäre eine Erläuterung der Funktionen in ext_localconf.php. *Botschaft*
    ;)


  • einpraegsam.net einpraegs...
    MacGyver
    0 x
    9340 Beiträge
    80 Hilfreiche Beiträge
    11. 08. 2007, 19:42

    Danke für die ausführliche Anleitung, wird sicher benötigt werden!

    Auch sehr hlfreich, um den Pfad wie gewünscht anzupassen:
    [url]http://typo3.org/extensions/repository/view/nfc_realurl_individual/0.1.0/[/url]

    in2code.de - Wir leben TYPO3
    - Möchtest du TYPO3 komplett verstehen? Eigene Erweiterungen erstellen? Bei uns gibt es auch Schulungen https://www.in2code.de/produkte/typo3-schulungen/
    - Die Arbeit mit TYPO3 macht dir Spaß? Du stehst auf Berge? Komm zu uns! https://www.in2code.de/agentur/karriere/


  • 0 x
    11. 08. 2007, 21:34

    Man, welch eine Ehre. :)

    Ich hab aber auch verdammt lange dran gesessen.
    Da hab ich mir gedacht, dass es [b]für mich[/b] jetzt auch nicht mehr DER Aufwand ist, zusammenzufassen, was ich gemacht hab und wo für mich die Knackpunkte waren.

    Und ich hoffe mal, dass [b]Andere[/b] da auf die gleichen Probleme stoßen. :)

    Was man noch ausführlicher machen kann wäre eine Erläuterung der Funktionen in ext_localconf.php. *Botschaft*
    ;)


  • 0 x
    12. 08. 2007, 17:17

    Frage: [b]Jetzt funktionieren meine Anker nicht...[/b]

    [b]Beispiel[/b]: Typo3 bietet ja die Möglichkeit einen "nach Oben"-Link einzufügen.
    Der sieht dann etwa so aus:
    [HTML]<a href="#top">nach oben</a>[/HTML]

    Problem: Für RealURL muss man ja einen base-Tag setzen:
    [HTML]<base href="http://www.seite.de/" />[/HTML]

    Deshalb verweist, egal auf welcher Seite man gerade ist, der Anker auf die Startseite und da auf #top, anstatt auf die aktuelle Seite.

    [b]Lösung[/b]:
    Im Typoscript das Erscheinungsbild anpassen:
    [TS]tt_content.stdWrap.innerWrap2 = |<div class="nach_oben"><a href="{TSFE:siteScript}#top">nach oben</a></div> [/TS]
    Statt "div class..." kann natürlich alles Mögliche verwendet werden, entscheidend ist im Link der Teil [b]{TSFE:siteScript}[/b], der an dieser Stelle den Pfad zur aktuellen Seite einfügt. :)

  • 0 x
    24 Beiträge
    0 Hilfreiche Beiträge
    21. 08. 2007, 08:38

    hallo, danke für die anleitung!

    Kann man auch einen Ordner überspringen in der Anzeige?

    Ich habe folgende Struktur

    seiten (als Knoten quasi zur Strukturierung im Backend)
    seiten/kontakt
    seiten/impressum
    seiten/feedback

    Seit dem Update von RealURL 0.3.0 auf die aktuelle Version 1.1.4 rendert RealURL die Seiten folgendermassen:

    http://www.website.de/seiten/kontakt.html

    Mit RealURL 0.3.0 wird das gewünschte Ergebnis ausgebeben:

    http://www.website.de/kontakt.html

    Ich bin mir jetzt nicht sicher ob hier die Konfiguration das Problem ist oder ob RealURL 0.3.0 das Ganze einfach anders gehandhabt hat.

    Grüße
    -act

  • Gjergj Gjergj
    Padawan
    0 x
    51 Beiträge
    0 Hilfreiche Beiträge
    22. 08. 2007, 14:26

    Hallo Leute,

    also ich denke das ich alles richtig gemacht habe aber es taucht immer wieder der selbe fehler auf:

    Parse error: parse error, unexpected T_STRING, expecting ')' in /kunden/......../......./typo3/typo3conf/localconf.php on line 45

    ...habe die neuste Typo3 und realURL versionen, kann mir jemand weiter helfen?

    Gruß

    Gjergj

  • automatix automatix
    Sternenflotten-Admiral
    0 x
    252 Beiträge
    0 Hilfreiche Beiträge
    22. 08. 2007, 14:46

    [quote="Gjergj"]
    Hallo Leute,

    also ich denke das ich alles richtig gemacht habe aber es taucht immer wieder der selbe fehler auf:

    Parse error: parse error, unexpected T_STRING, expecting ')' in /kunden/......../......./typo3/typo3conf/localconf.php on line 45

    ...habe die neuste Typo3 und realURL versionen, kann mir jemand weiter helfen?

    Gruß

    Gjergj
    [/quote]Hallo Gjergj,

    wird ein Syntaxfehler sein -- irgenwo ein Semikolon zu viel / zu wenig oder Ähliches... Checke nochmal deinen PHP-Code in der localconf.php.

  • 0 x
    24 Beiträge
    0 Hilfreiche Beiträge
    22. 08. 2007, 15:07

    Ja, oder ein Anführungszeichen vergessen, gerade bei den ganzen arrays.

    -act

  • InforMedic InforMedi...
    Jedi-Meister
    0 x
    394 Beiträge
    1 Hilfreiche Beiträge
    22. 08. 2007, 15:14

    [quote="automatix"]
    [quote="Gjergj"]
    Parse error: parse error, unexpected T_STRING, expecting ')' in /kunden/......../......./typo3/typo3conf/localconf.php on line 45

    [/quote]Hallo Gjergj,

    wird ein Syntaxfehler sein -- irgenwo ein Semikolon zu viel / zu wenig oder Ähliches... Checke nochmal deinen PHP-Code in der localconf.php.
    [/quote]

    unexpected T_STRING bedeutet immer das ein abschliessendes Zeichen (semikolon, klammern, etc) fehlt oder zuviel ist!!!

    Tipp: z.B. kann ich mir in Zend Studio bei positionierung des cursors an das ende eines brackets -> also nach einem ], ) oder } das zugehörige öffnende bracket [, ( oder { anzeigen lassen - womit ich dann wiederum überprüfen kann ob auch wirklich jede Verzeigung geschlossen wird!

    Gruß
    Info

  • Gjergj Gjergj
    Padawan
    0 x
    51 Beiträge
    0 Hilfreiche Beiträge
    23. 08. 2007, 16:39

    Aber ich nutze den selben PHP-Script:

    1. <?php
    2. $TYPO3_CONF_VARS['SC_OPTIONS'] ['t3lib/class.t3lib_tstemplate.php'] ['linkData-PostProc'] []
    3. = 'EXT:realurl/class.tx_realurl.php:&tx_realurl->encodeSpURL';
    4. $TYPO3_CONF_VARS['SC_OPTIONS'] ['tslib/class.tslib_fe.php'] ['checkAlternativeIdMethods-PostProc'] []
    5. = 'EXT:realurl/class.tx_realurl.php:&tx_realurl->decodeSpURL';
    6. $TYPO3_CONF_VARS['SC_OPTIONS'] ['t3lib/class.t3lib_tcemain.php'] ['clearAllCache_additionalTables'] ['tx_realurl_urldecodecache']
    7. = 'tx_realurl_urldecodecache';
    8. $TYPO3_CONF_VARS['SC_OPTIONS'] ['t3lib/class.t3lib_tcemain.php'] ['clearAllCache_additionalTables'] ['tx_realurl_urlencodecache']
    9. = 'tx_realurl_urlencodecache';
    10. $TYPO3_CONF_VARS['FE'] ['addRootLineFields'] .=
    11. ',tx_realurl_pathsegment,alias,nav_title,title';
    12.  
    13. $TYPO3_CONF_VARS['EXTCONF'] ['realurl'] ['_DEFAULT'] = array(
    14.  
    15. 'init' => array(
    16. 'enableCHashCache' => 1,
    17. 'appendMissingSlash' => 'ifNotFile',
    18. 'enableUrlDecodeCache' => 1,
    19. 'enableUrlEncodeHash' => 1,
    20. // 'postVarSet_failureMode' => 'redirect_goodUpperDir',
    21. ),
    22.  
    23. 'redirects' => array(
    24. ),
    25. /* 'rewrite' => array(
    26.   ), */
    27.  
    28. 'preVars' => array(
    29. /* array(
    30.   'GETvar' => 'no_cache',
    31.   'valueMap' => array(
    32.   'nc' => 1,
    33.   ),
    34.   'noMatch' => 'bypass',
    35.   ), */
    36. /*
    37.   array(
    38.   'GETvar' => 'L',
    39.   'valueMap' => array(
    40.   'de' => '0',
    41.   'en' => '1',
    42.   ),
    43.   'valueDefault' => 'de',
    44.   ),
    45.   */
    46. ),
    47.  
    48. 'pagePath' => array(
    49. 'type' => 'user',
    50. 'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
    51. 'spaceCharacter' => '-',
    52. 'languageGetVar' => 'L',
    53. // 'firstHitPathCache' => 1,
    54. 'expireDays' => 3,
    55. // ------------> hier unbedingt die id der Rootseite anpassen!!! <------------
    56. 'rootpage_id' => '1'
    57. ),
    58.  
    59. 'fileName' => array (
    60. 'defaultToHTMLsuffixOnPrev' => 1,
    61. 'index' => array(
    62. /*'index.html' => array(*/
    63. 'keyValues' => array (
    64. /*'type' => 1,*/
    65. ),
    66. /*),*/
    67. ),
    68. ),
    69.  
    70. 'fixedPostVarSets' => array(
    71. ),
    72.  
    73. 'postVarSets' => array(
    74. ),
    75. );
    76. ?>

    [b]und alles andere habe ich auch gemacht, ich habe sogar von PHP4 auf PHP5 umgestellt!

    ...ach ja ich habe 2 .htaccess-dateien einmal im typo3-ordner und einmal auf meinem FTP-Acc, in welcher datei muss ich den script einfügen![/b]