---
title: "realurl für Sprachen"
url: "https://www.typo3.net/d/62680-realurl-fuer-sprachen"
source: "typo3.net"
tags: ["Extensions","Frage","RealURL"]
created: "2007-05-18"
last_reply: "2007-07-02"
replies: 4
solved: false
page: 1
pages: 1
lang: "de"
---

# realurl für Sprachen

Extensions · 4 Antworten · gestartet 2007-05-18

## Eröffnungsbeitrag

**slashwalker** · 2007-05-18 · [Beitrag #1](https://www.typo3.net/d/62680-realurl-fuer-sprachen/1)

Hallo,
wie kann man realurl auch für Sprachvariablen nutzen?

Also aus www.domain.de/seite/?L=1
soll www.domain.de/en/seite/
und aus www.domain.de/seite/ bzw. www.domain.de/seite/?L=0
soll www.domain.de/de/seite/
werden.

Meine bisherige .htaccess:

```html
# Enable URL rewriting
RewriteEngine On
RewriteRule ^(404|typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)/ - [L]
RewriteRule ^typo3$ typo3/index_re.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php 
ErrorDocument 404 /index.php?id=notfound
ErrorDocument 403 /index.php?id=notfound
```

## Antworten

### [#2](https://www.typo3.net/d/62680-realurl-fuer-sprachen/2) · einpraegsam.​net · 2007-05-18

Ich schicke dir mal den kompletten Code aus der localconf.php:

```php
//Beginn REAL URL
$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' => 1
    ),
    'preVars' => array(
        array(
            'GETvar' => 'no_cache',
            'valueMap' => array(
                'no_cache' => 1,
            ),
            'noMatch' => 'bypass',
        	),
    	array(
        	'GETvar' => 'L',
        	'valueMap' => array(
            	'en' => '1',
            	'cs' => '2',
        	),
        	'noMatch' => 'bypass',
        	),
    	array(
        	'GETvar' => 'type',
        	'valueMap' => array(
            	'type' => '96',
        	),
        	'noMatch' => 'bypass',
        	),
    	),
    'fileName' => array (
        'index' => array(
            'index.html' => array(
                'keyValues' => array(
					
                )
            ),
            'barrierefrei.html' => array(
                'keyValues' => array(
					'type' => 96,
                )
            ),
            'print.html' => array(
                'keyValues' => array(
					'type' => 94,
                )
            ),
		),
    ),
    'postVarSets' => array(
        '_DEFAULT' => array (
            'index' => array(
                array(
                    'GETvar' => '',
                ),
            ),

            'article' => array(
                array(
                    'GETvar' => 'tx_ttnews[tt_news]',
                ),
                array(
                    'GETvar' => 'tx_ttnews[backPid]',
                ),
            ),
            'category' => array(
                array(
                    'GETvar' => 'tx_ttnews[cat]',
                ),
            ),
            'neste' => array(
                array(
                    'GETvar' => 'tx_ttnews[pointer]',
                ),
			),
			'bild' => array(
				array(
					'GETvar' => 'tx_wtgallery_pi1[picid]',
				),
			),
			'vorschau' => array(
				array(
					'GETvar' => 'tx_wtgallery_pi1[thumbid]',
				),
			),
			'kategorie' => array(
				array(
					'GETvar' => 'tx_wtgallery_pi1[cat]',
				),
			),
			'kategorienummer' => array(
				array(
					'GETvar' => 'tx_wtgallery_pi1[catno]',
				),
			),
        ),
    ),
    'pagePath' => array(
        'type' => 'user',
        'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
        'spaceCharacter' => '-',
        'languageGetVar' => 'L',
        'expireDays' => 0,
    ),
);
// ENDE REAL URL
```

### [#3](https://www.typo3.net/d/62680-realurl-fuer-sprachen/3) · slashwalker · 2007-05-18

Danke dir! Das ist sogar noch besser als ich es wollte!

### [#4](https://www.typo3.net/d/62680-realurl-fuer-sprachen/4) · jsf · 2007-06-08

Hallo,
ich arbeite zurzeit am Umzug bisheriger Webinhalte nach Typo 3.
Dazu habe ich Typo3 in einem Unterordner /t/ installiert.
Mit Realurl will  ich zum Einen halt die url gestalten und zum Anderen die Zweisprachigkeit sicherstellen.
Ich habe die mitgelieferte .htaccess unverändert aus der Extension in meinen Typo3 Unterordner verschoben und das Script von Wunschtacho an die vorhandene localconf.php angefügt.
Jetzt passiert, dass ich zwar die Startseite aufrufen kann (die dann im Browseradressfenster ohne realurl steht) aber beim Aufruf der Unterseiten immer die Meldung bekomme, dass diese Seiten nicht existieren.
Der link zu den unterseiten ist jedesmal
www.domain.de/t/menue/pfad/zu/der/datei/index.html
Komischerweise steht auch der Zusatz /en/ nur bei der englischen Seite nach dem /t/. Auf der deutschen Seite fehlt dieser Eintrag. Im php von Wunschtacho habe ich nur die tschechische auf die deutsche Sprache mit Sprach ID 0 gesetzt.
Da ich sowohl htaccess als auch php Laie bin wäre eine etwas auführlichere Erklärung nett.
Danke Jens

[Nichts ist, bevor es ist.][/quote]

### [#5](https://www.typo3.net/d/62680-realurl-fuer-sprachen/5) · slashwalker · 2007-07-02

@wunschtacho

Ihc hab jetzt grad ein kleines Problem mit dem realURL. Deine localconf.php funktioniert super. Aber ich krieg das Sprachmenü nicht richtig in den Griff.

```php
<?php
$query = "SELECT * FROM pages_language_overlay WHERE pid=".$GLOBALS["TSFE"]->id.$GLOBALS["TSFE"]->sys_page->enableFields("pages_language_overlay")." GROUP BY sys_language_uid"; 
$query2 = "SELECT alias FROM pages WHERE uid=".$GLOBALS["TSFE"]->id.""; 
$res = mysql(TYPO3_db,$query); 
$res2=mysql(TYPO3_db,$query2);
$langArr=array(); 
while($row=mysql_fetch_assoc($res)) { 
     $langArr[$row["sys_language_uid"]]=$row["title"]; 
} 
$alias=mysql_fetch_row($res2);
$flags = array();
$flags[] = '<a href="/de/'.$alias[0].'" title="Deutsch"><img src="pics/flags/d_flag.gif" title="Deutsch" alt="Deutsch"></a>'; 
$flags[] = '<a href="/en/'.$alias[0].'" title="English"><img src="pics/flags/e_flag.gif" title="English" alt="English"></a>';

$content = implode("",$flags);
?>
```

Das sorgt für Links **www.domain.de/en/seitenalias/index.html**
Soweit auch ganz ok.

Aber, wenn ich nun tiefer in der Seite bin z.B. **www.domain.de/de/startseite/unterseite/artikel/index.html** und will dann auf englisch umstellen, macht das Menü natürlich **www.domain.de/en/artikel/index.html** , weil es sich ja nur den Alias aus der DB holt. Es funktioniert also nur, wenn ich gleich auf der Startseite auf englisch umstelle und mich dann durchklicke. Das ist aber bissel unbefriedigend. Wie kann ich ihm nun den aktuellen Pfad sagen und im sagen, wo er den Alias ersetzen muss? Oder dem realURL beibringen das er statt dem kompletten Pfad nur den Alias übernimmt. Also das genrell nur **www.domain.de/seite/index.html** statt **www.domain.de/pfad/zur/seite/index.html** erzeugt wird.

Steh grad echt auf dem Schlauch.

---

Quelle: „realurl für Sprachen“, typo3.net, https://www.typo3.net/d/62680-realurl-fuer-sprachen
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
