TYPO3: RealURL-Anpassung





Von Bernd Warken bei Fa. Netcos AG









Kapitel 0: Einleitung

0.1 Vorwort

0.2: Lizenz

Kapitel 1: Die RealURL-Extension

1.1 Installation

1.2 Template-Einstellung

1.3 Einrichtung des Webservers

Kapitel 2: Anpassung von typo3conf/localconf.php

2.1 Einfache Domain

2.2 Mehrfache Domains

2.3 Dateiimport statt Anhang

2.4 News und mehr









Kapitel 0: Einleitung



0.1 Vorwort

RealURL ist eine TYPO3-Extension, die sprechende Namen für die von TYPO3 erzeugten Seiten-URLs erzeugt. Mit Hilfe dieses Dokuments ist es möglich, kryptische Standardattribute wie z.B. http://www.meineseite.de/index.php?id=1&L=1 durch Namen wie http://www.meineseite.de/en/home ersetzen zu lassen.

Die Idee für dieses Projekt stammt aus der Trainings-DVD:

Einstieg in TYPO3 4.0

Von den Grundlagen bis zur professionellen Website

von Thomas Kötter

ISBN 3-89842-856-7

Die DVD ist sehr gut und sehr zu empfehlen, sie taugt sowohl für Anfänger als auch für fortgeschrittenen Einsatz von TYPO3. Eine Datendatei der DVD über das Thema RealURL ist im Internet erhältlich unter

http://www.galileocomputing.de/download/dateien/1118/realurl.zip

Ein weitere Internetseite, die die Konfiguration von RealURL behandelt, ist

http://www.cross-content.com/typo3-tutorial/realurl-funktioniert.html

Der Quellcode kann jeweils größtenteils aus dem Handbuch der RealURL-Erweiterung erarbeitet werden. Es ist zu finden bei typo3.org unter DocumentationExtension Manuals RealURL (realurl).





0.2: Lizenz



Dieses Dokument gehört zum TYPO3-Projekt RealURL. Die aktuelle Version ist 1.1 vom 29. August 2007. Der Autor ist Bernd Warken bei Firma netcos AG.

Das Dokument ist gespeichert im OpenOffice-Format .sxw der Version 1 und im HTML-Format .html.

Dieses Dokument steht unter der Lizenz GPL (GNU General Public License) Version 3. Der Originaltext dieser Lizenz ist erhältlich unter http://www.gnu.org/licenses/gpl.html, eine deutsche Übersetzung befindet sich unter http://www.gnu.de/documents/gpl.de.html.









Kapitel 1: Die RealURL-Extension

1.1 Installation


RealURL ist eine Extension (Erweiterung) von TYPO3. Vor dem Gebrauch muss diese natürlich geladen werden. Dies geschieht innerhalb eines TYPO3-Backends durch den Ext Manager im Menüpunkt Import extensions. Eventuell müssen dabei noch andere Extensions ebenfalls installiert werden. Wenn man der Installationsführung folgt, wird dies automatisch durchgeführt. Beachten Sie nur, dass keine der entstehenden Fenster direkt geschlossen werden, sondern nur durch Klicks auf entsprechende Felder.



1.2 Template-Einstellung



Damit RealURL überhaupt laufen kann, muss es im TypoScript-Template konfiguriert werden. Dazu sind drei Befehle aus dem config-Bereich nötig:

config {

simulateStaticDocuments = 0

baseURL = http://meinewebseite.de

tx_realurl_enable = 1

}



Der Befehl config.simulateStaticDocuments = 0 deaktiviert eine Vorläuferversion von RealURL, die aber nur sehr eingeschränkt funktionierte. Bei Aktivierung würde es zu Funktionsstörungen kommen.

Der Befehl config.baseURL ist nicht nur in RealURL sinnvoll. Er definiert die URL der Website, unter der TYPO3 oder die Domain läuft. Dabei wird auf das Verzeichnis gezeigt, in dem sich die Datei index.php befindet. Für eine lokale Entwicklungsumgebung könnte der Befehl auch lauten:

config.baseURL = http://localhost/typo3/entwicklung



Für jede Domain sollte eine eigene baseURL auf den passenden Template-Seiten gesetzt werden.

Der Befehl config.tx_realurl_enable aktiviert schließlich die Verwendung von RealURL, wenn der Wert auf 1 gesetzt ist. Ist der Wert 0, so wird RealURL deaktiviert.



1.3 Einrichtung des Webservers

Wir behandeln hier nur den Webserver Apache2. Zur Verwendung von RealURL ist die Einstellung der Rewrite-Engine nötig. Dazu muss das Rewrite-Modul installiert sein.

Als nächstes muss die Rewrite-Engine für Ihre TYPO3-Installation eingerichtet werden. Dazu muss eine Datei .htaccess im Wurzelverzeichnis der TYPO3-Installation eingestellt werden. Bei den neueren TYPO3-Versionen existiert in diesem Verzeichnis bereits eine Datei _.htaccess. Diese muss einfach in .htaccess umbenannt werden. Diese Datei ist relativ groß und enthält schon eine Menge Voreinstellungen. Anhand der guten Dokumentation innerhalb kann man diese Datei gut ans aktuelle System anpassen.

Die Zeile

RewriteEngine On

muss auf jeden Fall eingeschaltet sein.

Falls nur eine Domain in der TYPO3-Installation verwendet wird, kann der Befehl

RewriteBase /pfad

verwendet werden, wobei /pfad der Pfad relativ zu http://meine.domain oder http://localhost ist. Zum Beispiel ist der Pfad zu http://localhost/ gerade nur /, zu http://localhost/typo3/meineseite/ aber /typo3/meineseite/.

Falls man mehrere Domains in der TYPO3-Installation verwendet, empfiehlt es sich statt RewriteBase folgende Zeilen für jede Domain in .htaccess hinzuzufügen:

RewriteCond %{HTTP_HOST} meine.domain$ [NC]

RewriteRule ^$ /index.php?id=129

Dabei ist der Wert von id nicht 129, sondern die wirkliche Seiten-id innerhalb der TYPO3-Seiten. Für meine.domain muss der wirkliche Domain-Name eingesetzt werden. Eine eventuelle Zeile mit RewriteBase muss dann auskommentiert werden.

Die folgenden Befehle oder ähnliche Elemente werden wohl schon in der Datei .htaccess enthalten sein:

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

RewriteRule ^typo3/.*$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* index.php [L]












Kapitel 2: Anpassung von typo3conf/localconf.php

Die standardmäßige Einrichtung von RealURL ist nicht allzu beeindruckend. Zur optimalen Verwendung sollte die Datei typo3conf/localconf.php erweitert werden.

2.1 Einfache Domain

Wir besprechen nun einen Zusatz für die Datei typo3conf/localconf.php, der für die Erstellung eines TYPO3-Projekts mit einer einzigen Domain ausreicht. Diese Ergänzung basiert auf der Standardsprache Deutsch mit der id L=0 und einer Fremdsprache Englisch mit der id L=1. Die Rootseite braucht nicht angegeben zu werden, sie wird automatisch gefunden. Der Quellcode ist aus

http://www.galileocomputing.de/download/dateien/1118/realurl.zip

übernommen und sieht folgendermaßen aus:

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

'_DEFAULT' => array(

'redirects' => array(),

'preVars' => array(

array(

'GETvar' => 'L',

'valueMap' => array(

'de' => '0',

'en' => '1',

),

'valueDescription' => array(

'de' => 'Deutsch',

'en' => 'English',

),

'noMatch' => 'bypass',

),

),

'pagePath' => array(

'type' => 'user',

'userFunc' =>

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

'spaceCharacter' => '_',

'languageGetVar' => 'L',

'expireDays' => 7,

),

'fixedPostVars' => array(),

'postVarSets' => array(),

),

);



Dieser Quellcode wird nahe am Ende der Datei angehängt, jedoch vor der abschließenden Zeile

?>



Bevor Sie es anhängen, überprüfen Sie bitte, ob die Datei nicht bereits einen RealURL-Ansatz beinhaltet. Man erkennt dies an einer existierenden Zeile:

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





2.2 Mehrfache Domains

Für jede Domain der TYPO3-Installation müssen hinter dem obigen Zusatz für die einfache Domain folgende beiden Zeilen angehängt werden:

$TYPO3_CONF_VARS['EXTCONF']['realurl']['meine.domain'] =

$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'];

$TYPO3_CONF_VARS['EXTCONF']['realurl']['meine.domain']['pagePath']['rootpage_id'] = 129;

Bitte entfernen Sie den Zeilenumbruch nach dem ersten Gleichheitszeichen und ersetzen wieder die Zahl 129 durch die id der Rootseite.

Das Einfügen erfolgt wieder vor der abschließenden Zeile

?>

in der Datei typo3conf/localconf.php.

Denken Sie daran, die Datei .htaccess für Ihre verschiedenen Domains anzupassen (s. voriges Kapitel).



2.3 Dateiimport statt Anhang

Es ist durchaus möglich, den Dateianhang in eine Datei zu speichern und diese zu importieren. Wir speichern dazu den gesamten Inhalt der Kapitel 2.1 und 2.2 in die Datei typo3conf/realurlconf.php.

<?php
  Inhalt von Kapitel 2.1 und 2.2
?>



Dann fügen wir ganz ans Ende der Datei typo3conf/localconf.php (also noch nach der abschließenden Zeile) folgende Zeile hinzu:

<?php include(PATH_typo3conf.'realurlconf.php'); php?> 



RealURL sollte auch jetzt funktionieren.



2.4 News und mehr

Wer News und andere Features mit sprechenden Namen versehen haben möchte, sei auf die Trainings-DVD Einstieg in TYPO3 4.0 von Thomas Kötter verwiesen. In der Datendatei der DVD

http://www.galileocomputing.de/download/dateien/1118/realurl.zip

befindet sich die Datei Beispielkonfiguration RealURL.txt. Diese beschreibt die Erweiterung von typo3conf/localconf.php unter der Benutzung von News und Anderem.