069 37306888Anfahrt

RealURL installieren und anpassen

Warum RealURL?

Mit der TYPO3-Extension RealURL erhalten die Adressen (URLs) einzelner Webseiten sog. sprechende Bezeichner.

Standardmäßig werden in TYPO3 Seiten über ihre ID aufgerufen. Dies würde beispielsweise für die Seite „Profil“ auf der Waconseite wie folgt aussehen:

www.wacon.de/index.php?id=37

Kommen noch Extensions wie tx_news mit ins Spiel, verlängert sich die URL mit unschönen und unleserlichen Parametern.

Durch den Einsatz von RealURL können wir der Seite einen bestimmten Namen geben. Zusätzlich können wir über die URL verfolgen, wo sich die Seite im Menü befindet. Hier nun das Beispiel mit RealURL:

www.wacon.de/unternehmen/allgemeines/profil.html

Hier sehen wir, dass die Seite profil.html eine Unterseite von Allgemeines ist und Allgemeines wiederum eine Unterseite von Unternehmen. Die Ebenen im Seitenbaum werden also innerhalb der URL als Verzeichisse umgesetzt. Dabei ist RealURL so flexibel, dass man einzelne Ebenen aus der URL rausnehmen oder auch das Postfix „.html“ weglassen kann.

Aber warum wollen wir die „schönen“ URL´s haben und machen uns die Mühe RealURL zu installieren und anzupassen? Dafür gibt es insbesondere zwei wichtige Gründe:

  1. Suchmaschinen-Ranking: Suchmaschinen bewerten Seiten mit passenden Namen besser als mit nichtssagenden ID´s. Im Rahmen der OnPage-Optimierung haben Sie die Möglichkeit, wichtige Schlüsselbegriffe in der URL "unterzubringen".
  2. Usability: Es ist für den Besucher einfacher sich einen „sprechenden“ Pfad zu merken als „index.php?id=37“ und gegebenenfalls den weiteren Parametern diverser Extensions.

Als TYPO3 Agentur sind wir Ihnen gerne beim Support Ihrer Website behilflich. Wenn Sie mit dieser Anleitung nicht weiterkommen oder andere Probleme mit TYPO3  haben nehmen Sie einfach Kontakt zu uns auf.

Was ist zu tun?

1. Laden Sie die Extension RealURL über den Extensionmanager herunter und installieren Sie sie.

2. Tragen Sie im Typoscript des Haupttemplates unter Setup folgenden Code ein:

config {
    prefixLocalAnchors = all
    simulateStaticDocuments = 0
    baseURL = www.wacon.de
    tx_realurl_enable = 1

}

3. Erstellen Sie eine Datei mit dem Namen realurl_conf.php. In diese Datei kommt folgender Code:

<?php

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

$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(

        'pagePath' => array(

                'type' => 'user',

                'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',

                'spaceCharacter' => '-',

                'languageGetVar' => 'L',

                'expireDays' => '3',

                'rootpage_id' => 1,

                'firstHitPathCache'=>1

        ),

 'init' => array(

                'enableCHashCache' => TRUE,

                'enableCHashCache' => 1,

                'respectSimulateStaticURLs' => 0,

                'enableUrlDecodeCache' => 1,

                'enableUrlEncodeCache' => 1

        ),

        'preVars' => array(

                array(

                        'GETvar' => 'L',

                        'valueMap' => array(

                                'en' => '1',

                        ),

                        'noMatch' => 'bypass',

                ),

                array(

                        'GETvar' => 'no_cache',

                        'valueMap' => array(

                                'nc' => 1,

                        ),

                        'noMatch' => 'bypass',

                ),

        ),

        'fixedPostVars' => array(

                'newsDetailConfiguration' => array(

                        array(

                                'GETvar' => 'tx_news_pi1[action]',

                                'valueMap' => array(

                                        'detail' => '',

                                ),

                                'noMatch' => 'bypass'

                        ),

                        array(

                                'GETvar' => 'tx_news_pi1[controller]',

                                'valueMap' => array(

                                        'News' => '',

                                ),

                                'noMatch' => 'bypass'

                        ),

                        array(

                                'GETvar' => 'tx_news_pi1[news]',

                                'lookUpTable' => array(

                                        'table' => 'tx_news_domain_model_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' => 'l10n_parent',

                                        'autoUpdate' => 1,

                                        'expireDays' => 180,

                                )

                        )

                ),

                'newsCategoryConfiguration' => array(

                        array(

                                'GETvar' => 'tx_news_pi1[overwriteDemand][categories]',

                                'lookUpTable' => array(

                                        'table' => 'sys_category',

                                        'id_field' => 'uid',

                                        'alias_field' => 'title',

                                        'addWhereClause' => ' AND NOT deleted',

                                        'useUniqueCache' => 1,

                                        'useUniqueCache_conf' => array(

                                                'strtolower' => 1,

                                                'spaceCharacter' => '-'

                                        )

                                )

                        )

                ),

                'newsTagConfiguration' => array(

                        array(

                                'GETvar' => 'tx_news_pi1[overwriteDemand][tags]',

                                'lookUpTable' => array(

                                        'table' => 'tx_news_domain_model_tag',

                                        'id_field' => 'uid',

                                        'alias_field' => 'title',

                                        'addWhereClause' => ' AND NOT deleted',

                                        'useUniqueCache' => 1,

                                        'useUniqueCache_conf' => array(

                                                'strtolower' => 1,

                                                'spaceCharacter' => '-'

                                        )

                                )

                        )

                ),

                '15' => 'newsDetailConfiguration',

                '347' => 'newsDetailConfiguration', // For additional detail pages, add their uid as well

                '71' => 'newsTagConfiguration',

                '72' => 'newsCategoryConfiguration',

        ),

        'postVarSets' => array(

                '_DEFAULT' => array(

                        'controller' => array(

                                array(

                                        'GETvar' => 'tx_news_pi1[action]',

                                        'noMatch' => 'bypass'

                                ),

                                array(

                                        'GETvar' => 'tx_news_pi1[controller]',

                                        'noMatch' => 'bypass'

                                )

                        ),

                        'dateFilter' => array(

                                array(

                                        'GETvar' => 'tx_news_pi1[overwriteDemand][year]',

                                ),

                                array(

                                        'GETvar' => 'tx_news_pi1[overwriteDemand][month]',

                                ),

                        ),

                        'page' => array(

                                array(

                                        'GETvar' => 'tx_news_pi1[@widget_0][currentPage]',

                                ),

                        ),

                ),

        ),

// 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,

),

),

),

),

);

?>

Bei „rootpage_id => 1“ muss die ID ihrer Rootseite eingetragen werden. Dann können Sie die Datei in das Unterverzeichnis typo3conf Ihrer TYPO3-Installation auf den Server laden.

In dieser Datei werden auch die Anpassungen für das News-Modul eingetragen. Zu ändern wären hier die Seiten ID´s für zum Beispiel die Einzelansichten. Über "newsDetailConfiguration" wird der Link zu den Einzelansichten der einzelnen Newsbeiträge überschrieben, so dass  die Newsüberschrift in der URL eingefügt wird anstatt ein unleserlicher String aus Zahlen und Buchstaben. Genauso wird mit "newsCategoryConfiguration" verfahren, in diesem Fall wird dann der Kategorie Name in die URL übernommen.

4. Im Erweiterungsmanager müssen Sie als nächstes die Extension RealURL bearbeiten und unter "Enable features" typo3conf/realurl_conf.php eintragen.

5. In die .htaccess müssen dann als letztes folgende Code-Zeilen eingebunden werden:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond $0#%{REQUEST_URI} ([^#]*)#(.*)\1$

RewriteRule ^.*$ - [E=CWD:%2]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ $1.$3 [L]

RewriteRule _(?:recycler|temp)_/ - [F]

RewriteRule fileadmin/templates/.*\.(?:txt|ts)$ - [F]

RewriteRule typo3temp/logs/ - [F]

RewriteRule ^(vendor|typo3_src) - [F]

RewriteRule (?:typo3conf/ext|typo3/sysext|typo3/ext)/[^/]+/
        (?:Configuration|Resources/Private|Tests?)/ - [F]

RewriteCond %{SCRIPT_FILENAME} -d [OR]

RewriteCond %{SCRIPT_FILENAME} -f

RewriteRule (?:^|/)\. - [F]

RewriteRule (?:typo3/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^.*$ %{ENV:CWD}index.php [QSA,L]

</IfModule>

Nun sollte RealURL laufen. Denken Sie daran, den Cache zu löschen. Für den Fall, dass RealURL nicht direkt läuft, überprüfen Sie, ob mod_rewrite auf Ihrem Webserver aktiviert ist.

Nachdem die einzelnen Seiten Ihrer Website nun sprechende Bezeichnungen haben, empfiehlt sich:

Haben Sie Fragen oder benötigen Sie konkreten Support? Wir sind eine Internet-Agentur, die sich auf Dienstleistungen rund um TYPO3 spezialisert hat. Wenn Sie konkreten TYPO3-Service benötigen laden wir Sie herzlich ein, mit uns in Kontakt zu treten.