Zum Inhalt springen

Mehrere Slashes in realURL

Erstellt am 19. Februar 2010 · 19 Antworten · letzte Antwort am 11. März 2010

Tags: RealURL, URLs & Routing, Frage

balmung ·

Hallo allerseits,
weiß jemand, wie ich mehrere aufeinander folgende Slashes ohne Inhalt entfernen kann?
Ich habe die postVarSets mit drei Array gefüllt, die Ausgabe verschiedener Tabellespalten ermöglichen.
Problem ist, wenn ich nur eine Anspreche, dann bleibt der Rest leer.

Bsp:
domain.tld/ersteEbene/zweite////sechsteUndLetzte.html

Im Prinzip dasselbe, wie hier im Forum bei der Threadansicht nur halt mehr Slashes.

mibe ·

Hi!
das Problem hatte ich auch. Du musst nur immer einen neuen array unter postVarSets setzen und zwar in der Reihenfolge, wie dus haben willst. Zumindest hat das bei mir geholfen.

Hier ein Beispiel:

'postVarSets' => array(
   '_DEFAULT' => array(
       'Begriff_der_in_der_url_erscheint' => array(   
           array(
                'GETvar' => hier zum Beispiel ne Datenbanktabelle
           ),
       ), 
       'Begriff_der_in_der_url_erscheint' => array(
	   array(
    		'GETvar' => 'beispielsweise tx_ttnews[cat]',
	   ),
       ),
balmung ·

Hi mibe,
danke für deine Antwort. Hab das auch mal so gemacht. Das Problem ist, dass die url immer länger wird. Das wollte ich eigentlich nicht. Ich wollte, dass die slashes weg sind und nicht mehr als zwei, drei Ebenen angezeigt werden.

also anstatt
domain.tld/ersteEbene/zweite////sechsteUndLetzte.html
so
domain.tld/ersteEbene/sechsteUndLetzte.html

Ich habe in den Seiten "nicht in sprechende Url aufnehmen" angeklickt. Sie werden aber trotzdem angezeigt. Weiß jemand, wie ich das ändern kann?

pow ·

Sind die Seiten zufällig SysOrdner?
Sind das vielleicht garkeine Seiten die er da aufnimmt sondern leere Parameter?
Schau mal wenn du realURL deaktivierst, was alles für Parameter dran hängen.

Grüße

balmung ·

Hallo pow,
danke für deine Antwort. Die ersten zwei Ebenen nach der root sind Unterseiten, wobei die zweite Ebene auf der gleichen liegt, wie die erste.
Bsp.:
root shortcut auf Startseite. Startseite ist in dem Fall die erste Ebene. Danach !!nicht IN der Startseite!! kommt die Seite Einzelansicht. Dann kommen die preSarSets aus realUrl. Diese sind ausgelesene Tabellenfelder. und dafür gibt es auch einen Sysordner.
Das bringt bei mir aber nachher die Url:
domain.tld/startseite/einzlansicht/preVarSetArrayName/Inhalt.html
Das ist extrem suchmaschinenfreundlich #paralyzed#

Eigentlich möchte ich wenigstens die beiden Seiten startseite/einzlansicht/ bei der Ausgabe des Ergebnises nicht drin haben. Sondern die direkte Ausgabe des Suchergebnisses in der Form.
domain.tld/preVarArrayName/Inhalt.html

Grüße

pow ·

Das einzige was ich sagen kann ist, das SysOrdner nicht aus der realURL genommen werden können, zumindest hab ich das nie geschafft.
Stell doch mal Probeweise die SysOrdner um auf normale Seiten und lass die Option "aus pfadsegment nehmen" angeschalten.

balmung ·

Danke für den Tip. Aber hat nichts gebracht. Ist aber auch nicht tragisch, da die Seiten Startseite und Einzelansicht Standardseiten sind. Da hätte doch auch vorher funktionieren müssen.(?)

pow ·

Wenn ich richtig verstehe kommt Einzelansicht aus z.b. tt_news und das ist in realURL als preVar definiert. Richtig?
Also GET-Parameter aus der URL zu "löschen" bzw. auszublenden, geht meines wissenss nicht.

balmung ·

Ich Depp. Entschuldige. Schreibfehler.postVarSets. So wie die Beispiel relaUrl Konfiguration von mibe

pow ·

Also hast du leere postVars? In Bezug auf Mibe wolltest du doch keine hinzufügen sondern entfernen. Also müsstest du aus deiner realURL die postVars entfernen. Wenn diese leer sind, wird ein leeres "//" hinzugefügt meine ich.

balmung ·
pow schrieb

wird ein leeres "//" hinzugefügt meine ich.

Genau. Aber die bessere Lösung ist, diese zu füllen, da ich auf alle Fälle den Inhalt anzeigen möchte.

Müsste mit korrigiertem Schreibfehler so heißen.

domain.tld/postVarArrayName/Inhalt.html

nicht

domain.tld/startseite/einzlansicht/preVarSetArrayName/Inhalt.html

pow ·

Dann könntest du ja um den Array eine PHP-IF-Abfrage einbauen. Die checkt ob der Wert vorhanden ist. Müsste eigentlich funktionieren...

balmung ·

Leicht wirr heute.

Auch das domain.tld/startseite/einzlansicht/preVarSetArrayName/Inhalt.html
muss natürlich domain.tld/startseite/einzlansicht/POSTVarSetArrayName/Inhalt.html heißen.

balmung ·

Habe zuerst die realurlregeneration Extentension ausprobiert. Da lag der Hund begraben. Durch die tx_realurl_pathcache table wurde nichts mehr groß geändert, trotz mehrmaligen cache leerens. Jetzt komm ich der Sache näher. die erste Ebene ist schonmal weg.

pow ·

Cache und RealURL ist die reine Hölle, na dann klappts. Vielleicht kannst mit anderen deine Lösung sharen.

Grüße

pow ·

Jep hab ich gesehen.
Schalte doch den Cache von realURL ab, dann den TYPO3 Cache und dann lohnt sich das debuggen.

Grüße

balmung ·

Hab bei der suche natürlich nc=1 aber insgesamt soll das aus peformancegründen schon vorgehalten werden. Hab mal ein dynamisches Kategorien Menü erstellt. Ohne cache kannst du dir das nicht antun. 🙂
Übrigens danke für deine Hilfe. So kam mir dann doch die richtige Idee.

balmung ·

Habs nicht vergessen. Wird aber doch etwas dauern und umfangreicher, weil sich weitere Probleme auftun, die vermutlich mit den caches zusammen hängen.
Grüße