• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

mod_rewrite - Problem mit nicht absolut eingebundenen Bildern oder auch Links

ChristianH

Jamba
Registriert
26.09.06
Beiträge
58
Vorab: ich bin ein mod_rewrite-Anfänger.

Folgendes-Problem:

URL:
http://beta.domain.de/nachrichten/1234/Das_ist_ein_Titel.html

soll weitergeleitet werden nach
/index.php?id=shownews&artnr=1234&titel=Das_ist_ein_Titel

Ich erreiche das erfolgreich durch:
Code:
RewriteRule ^nachrichten/(.*)/(.*)\.html/?$ /index.php?id=shownews&artnr=$1&titel=$2 [L]
Es hat jedoch einen Schönheitsfehler: es kommt vor, dass meine Quelltexte keine absoluten Links enthalten, wenn beispielsweise Bilder eingebunden werden.

Beispiel:
Code:
<img src="bilder/news/blabla.jpg" alt="XY />
Und nun habe ich den Salat: das Bild wird nun nicht unter http://beta.domain.de/bilder/news/blabla.jpg gesucht, sondern unter http://beta.domain.de/nachrichten/1234/bilder/news/blabla.jpg

Desgleichen bei Links, die nicht absolut gesetzt sind wie
Code:
<a href="galerie/">Klick</a>
. Verlinkt wird nun nicht mehr auf beta.domain.de/galerie/, sondern beta.domain.de/nachrichten/1234/galerie/

Auch das führt natürlich ins Leere.

Kann ich solche Dinge mit mod_rewrite in den Griff bekommen? Klar: beste und immer zu verwendende Lösung ist, KEINE nicht absolut definierten Links zu verwenden (ein / vor den dynamischen Links würde da ja schon reichen), aber ich würde gern auch diese unvorteilhaft definierten Verknüpfungen lauffähig erhalten, ohne elendig viele Daten ändern zu müssen (ohne / überall einzufügen).
 

zeno

Lane's Prinz Albert
Registriert
05.11.05
Beiträge
4.894
Die realtiven Links sollten auch garnicht von mod_rewrite berücksichtigt werden, da du ja deine RewriteRule mit ^nachrichten beginnst.. ich gugg später nochmal.. muss jetzt weg..
 

ma.buso

Châtaigne du Léman
Registriert
16.04.05
Beiträge
820
Die realtiven Links sollten auch garnicht von mod_rewrite berücksichtigt werden, da du ja deine RewriteRule mit ^nachrichten beginnst.. ich gugg später nochmal.. muss jetzt weg..

Das hat nichts mit mod_rewrite zu tun, das liegt am Browser, der denkt, in /nachrichten zu sein, und somit die relativen Pfade einfach dranhängt :)

@ ChristianH:

Erstelle eine weitere Regel, die alle URLs mit /nachrichten, die nicht deinen vorangegangen Regeln entsprechen, auf die URL ohne /nachrichten umleitet.
Soweit ich weiß, führt Apache die erste zutreffende Regel aus, sodass
Code:
RewriteRule ^nachrichten/(.*)$ /$1
oder so ähnlich reichen müsste.
Für jeden weiteren Ordner, den du dem Browser vorgaukelst ebenso.
 

creative7even

Jerseymac
Registriert
23.02.05
Beiträge
454
Das hat nichts mit mod_rewrite zu tun, das liegt am Browser, der denkt, in /nachrichten zu sein, und somit die relativen Pfade einfach dranhängt :)

@ ChristianH:

Erstelle eine weitere Regel, die alle URLs mit /nachrichten, die nicht deinen vorangegangen Regeln entsprechen, auf die URL ohne /nachrichten umleitet.
Soweit ich weiß, führt Apache die erste zutreffende Regel aus, sodass
Code:
RewriteRule ^nachrichten/(.*)$ /$1
oder so ähnlich reichen müsste.
Für jeden weiteren Ordner, den du dem Browser vorgaukelst ebenso.

oder definiere ganze einfach ein

Code:
<base href="http://mydomain.com/mywebsiteroot/" />
 

ChristianH

Jamba
Registriert
26.09.06
Beiträge
58
Herzlichen Dank Euch allen! :) Ihr habt mir sehr weiter geholfen.