Andreas: automatisch einen Parameter an jeden Link anhängen

Beitrag lesen

Hallo!

mod_rewrite könnte helfen.

Der Gendanke war mir auch schon gekommen, aber das hat ja nix mit dynamischen Seiten zu tun, womit Michael seine Lösung verknüpft hatte, oder? Außerdem wird hier ja kein Paramterer angehängt, wie gesagt, sowas wie die PHPSESSID. Gibt es dafür gar keine Möglichkeit?

Wenn du die Sprache in den Dateipfad verfrachtest (üblicherweise ja eigentlich kein Problem, Links auf einer deutschen Seite gehen üblicherweise auf deutsche Seiten - und nur die Links zur Sprachumschaltung gehen auf fremdsprachige Seiten), dann kannst du den Pfad zur Ressource auseinanderpflücken und vollkommen neu zusammensetzen.

Beispielsweise:
http://www.server.tld/de/der_echte/pfad_zur/seite.php
wird umgesetzt zu
http://www.server.tld/der_echte/pfad_zur/seite.php?sprache=de

Problem hierbei: Wenn ich jetzt in der Datei

http://www.server.tld/der_echte/pfad_zur/seite.php

ein Bild verlinke, relativ zu

http://www.server.tld/images/hallo.gif, dann wäre das wohl: ../../images/hallo.gif.

Das ist ja schön, aber die Datei wird nicht gefunden, wenn ein /de/ dazwischensteht. Dagegen könnte ich ja nur absolute Links nehmen, was auch Nachteile hat. Wie würde man das denn am elegantesten umgehen? Oder ich mache ein Verzeichnis auch auf der richtigen Seite mit
http://www.server.tld/SPRACHE/der_echte/pfad_zur/seite.php
                      ^^^^^^^^
und das kann ich dann auch umschreiben in /de/, doof ist nur, das das ja in jedem Link berücksichtigt werden muß! Dann müßte ich tatsächlich alle Links umschreiben, damit die auf das Verzeichnis /de/ verweisen, oder auf /en/... aber irgendwie ist das nicht optimal.

Und dein PHP-Skript wertet entsprechend aus und setzt möglicherweise entsprechende Links. Relative Links sind natürlich am günstigsten, und der Sprung zu einer anderssprachigen Seite dürfte auch kein Thema sein.

Wie gesagt ist das mit den relativen Links auch so eine Sache, Sprache müßte ja in jedem Link stehen, sonst funktioniert es nicht, absolut ist dasselbe Problem!

Ich finde übrigens mod_rewrite eine sehr elegante Lösung für dein Problem - das ist genau dafür da, einer URL, also im Prinzip einer sehr virtuellen Ressource, eine reale Herkunft auf dem Server zuzuordnen. Das kann es durchaus auch verschleiernd wirken, du könntest also beispielsweise .html-Dateien verlinken, aber in Wirklichkeit eben PHP-Skripte einsetzen, ohne daß irgendwer das sieht oder sehen kann.

Ja, da gibt es viele interessante Sachen, kenne mich leider noch nicht wirklich damit aus. Aber gibt es kein Apache-Modul, womit Seiten (vor allem die Links darin) verändert werden können?

Grüße
Andreas

  • Sven Rautenberg